华为2018软件岗笔试题目

VIP免费
2025-03-08 0 0 14.66KB 7 页 5.9玖币
侵权投诉
第一题
题目描述
输入两个字母串,将两个字母串都包含的字母用’_'替换后,输出两个字母串的剩余部分。
输入描述:输入两个字符串,字符串最大长度为 100。字符串只包含字母,不可能为空串
区分大小写。
输出描述:按字符串顺序输出处理后的字符串
示例:
输入
abcd
bdef
1
2
输出
a_c_
__ef
1
2
解题思路
采用哈希思想。首先遍历字母串 a,记录其中出现的字母,随后遍历字母串 b,将重复出现
的字母标记为 100 并替换成_,随后再遍历 a,替换重复出现的字母。
参考代码
#include<iostream>
using namespace std;
const int SIZE = 100;
int main()
{
char a[SIZE];
char b[SIZE];
int low_alpha[26] = { 0 };
int high_alpha[26] = { 0 };
cin.getline(a, SIZE);
cin.getline(b, SIZE);
int i = 0; int j = 0;
while (a[i] != '\0')
{
if (a[i] >= 97)
low_alpha[a[i] - 97]++;
else
high_alpha[a[i] - 65]++;
i++;
}
while (b[j] != '\0')
{
if (b[j] >= 97)
{
if (low_alpha[b[j] - 97] > 0)
{
low_alpha[b[j] - 97] = 100;
b[j] = '_';
}
else
low_alpha[b[j] - 97]++;
}
else
{
if (high_alpha[b[j] - 65] > 0)
{
high_alpha[b[j] - 65] = 100;
b[j] = '_';
}
else
high_alpha[b[j] - 65]++;
}
j++;
}
i = 0;
while (a[i] != '\0')
{
if (a[i] >= 97)
{
if (low_alpha[a[i] - 97] ==100)
{
a[i] = '_';
}
}
else
if(high_alpha[a[i] - 65]==100)
a[i] = '_';
i++;
}
cout << a << endl;
cout << b << endl;
return 0;
}
摘要:

第一题题目描述输入两个字母串,将两个字母串都包含的字母用’_'替换后,输出两个字母串的剩余部分。输入描述:输入两个字符串,字符串最大长度为100。字符串只包含字母,不可能为空串,区分大小写。输出描述:按字符串顺序输出处理后的字符串示例:输入abcdbdef12输出a_c___ef12解题思路采用哈希思想。首先遍历字母串a,记录其中出现的字母,随后遍历字母串b,将重复出现的字母标记为100并替换成_,随后再遍历a,替换重复出现的字母。参考代码#includeusingnamespacestd;constintSIZE=100;intmain(){chara[SIZE];charb[SIZE];i...

展开>> 收起<<
华为2018软件岗笔试题目.docx

共7页,预览2页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:人力资源/企业管理 价格:5.9玖币 属性:7 页 大小:14.66KB 格式:DOCX 时间:2025-03-08

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 7
客服
关注