【SM】相似度(C++) kkmd66
本题易错点:
1、相同的字符只要可以再次匹配到,就可以重复输出;
2、OJ中的测试名字中有空格,所以不能用cin>>name1>>nam2;只能用getline(cin,name1)&&getline(cin,name2);
Description:
你知道岛上的龙都是怎样取名字的嘛?他们是从父亲的名字当中取一些字母,然后添加一点新的字母,这样一条龙的名字就诞生啦!当然,如果两条龙的血缘越近,他们名字共同的字母就越多。
现在,给出龙a和龙b的名字,找出他们名字中共同的字母,按字典序排序输出,已保证所有名字都为小写字母,且每个名字不超过1000个字母。
Input:
有多组测试样例,输入直到文件末尾。
每组样例占两行,每组第一行为龙a的名字,第二行为龙b的名字。
Output:
对每组样例输出一行,输出内容为龙a与龙b名字相同的字母。
Sample Input:
buff
beltsui
toothless
laurel
nader
alay
Sample Output:
bu
el
a
#include
#include "string"
#include "set"using namespace std;int main() {string str1, str2;while (getline(cin, str1) && getline(cin, str2)) {//遍历,记录multiset<char> result;for (int i = 0; i < str1.size(); ++i) {if (str2.find(str1[i]) != -1) {result.insert(str1[i]);str2[str2.find(str1[i])] = '#';}}//输出for (auto it: result) {cout << it;}cout << endl;}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
