本文主要是介绍蓝桥杯 经典算法题 找到给定字符串中的不同字符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
在不考虑字符排列的条件下,对于相差只有一个字符的两个字符串,实现一个算法来识别相差的那个字符。要求如下:
-
当传入的字符串为
aad
和ad
时,结果为a
。 -
当传入的字符串为
aaabccdd
和abdcacade
时,结果为e
。
题解:
因为一定有一个字符不相同,将字符串内部排序然后依次比较,输出新增串中与原串不一样的那一位即可。这里遍历原串和新增串比较,不同输出新增串的这一位即可,如果遍历完了都没有发现不一样,但又因为一定有一个新增的字符所以只能是新增串的最后一个字符。
#include <bits/stdc++.h>
using namespace std;
int main()
{string s1,s2;cin>>s1>>s2;sort(s1.begin(),s1.end());sort(s2.begin(),s2.end());for(int i=0;i<s2.size();i++){if(s1[i]!=s2[i]){cout<<s1[i];return 0;}}cout<<s1[s1.size()-1];return 0;
}
这篇关于蓝桥杯 经典算法题 找到给定字符串中的不同字符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!