PAT乙级1029
题目链接
https://pintia.cn/problem-sets/994805260223102976/problems/994805292322111488
题解
思路:
可以想到,没有坏键的话就是两个字符串是一样的。所以我们按下标进行比较,发现不一样的就是坏掉的,然后在错误字符串的该位置添加一个字符,以确保两字符串下标对应。
// PAT BasicLevel 1029
// https://pintia.cn/problem-sets/994805260223102976/problems/994805292322111488
#include <iostream>
#include <string>
using namespace std;
int main()
{
// 正确和错误的字符串
string right,wrong;
cin >> right >> wrong;
// 坏掉的键
string wrongKeys="";
// 寻找坏掉的键
for(int i=0;i<right.length();++i){
if (right[i] != wrong[i]){
// 在wrong里占个位子,更新下标
wrong.insert(wrong.begin() + i, '#');
// 处理丢失的字符(小写转大写)
if (islower(right[i])){
right[i]-=32;
}
// 记录新发现的未重复的坏键
if(wrongKeys.find(right[i])==wrongKeys.npos){
wrongKeys+=right[i];
}
}
}
// 输出结果
cout << wrongKeys;
//system("pause");
return 0;
}
作者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!