Description:
你知道岛上的龙都是怎样取名字的嘛?他们是从父亲的名字当中取一些字母,然后添加一点新的字母,这样一条龙的名字就诞生啦!当然,如果两条龙的血缘越近,他们名字共同的字母就越多。
现在,给出龙a和龙b的名字,找出他们名字中共同的字母,按字典序排序输出,已保证所有名字都为小写字母,且每个名字不超过1000个字母。
Input:
有多组测试样例,输入直到文件末尾。
每组样例占两行,每组第一行为龙a的名字,第二行为龙b的名字。
Output:
对每组样例输出一行,输出内容为龙a与龙b名字相同的字母。
Sample Input:
buff
beltsui
toothless
laurel
nader
alay
Sample Output:
bu
el
a
#include<iostream>
#include<map>
using namespace std;
int main(){
string str1;
string str2;
int res[26]={0};
while(cin>>str1>>str2){
map<char,int> mp;
for(int i=0;i<str1.length();i++){
mp[str1[i]]++;
res[str1[i]-'a']=1;
}
for(int j=0;j<str2.length();j++){
if(res[str2[j]-'a']==1){
mp[str2[j]]--;
res[str2[j]-'a']=0;
}
}
for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++){
if(it->second==0){
cout<<it->first;
}
}
cout<<endl;
}
}
第一次写的,没有过,可能因为测试数据名字里面有空格