题目:点击打开链接
思路:把每一个单词都变成小写排序后放进map,统计每一种写法有多少歌,把只有一次的组合的原字符串输出。
代码:
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string>
#include<map>
#include<vector>
using namespace std;
void change(string &a){
for(int i=0;i<a.size();i++){
if('A'<=a[i]&&a[i]<='Z'){
a[i]=a[i]-'A'+'a';
}
}
sort(a.begin(),a.end());
return ;
}
int main() {
string a;
vector<string> word;
map<string,int> b;
while(1){
cin>>a;
if(a=="#"){
break;
}
word.push_back(a);
change(a);
if(!b.count(a)){
b[a]=0;
}
b[a]++;
}
vector<string> c;
for(int i=0;i<word.size();i++){
string x=word[i];
change(x);
if(b[x]==1){
c.push_back(word[i]);
}
}
sort(c.begin(),c.end());
for(int i=0;i<c.size();i++){
cout<<c[i]<<endl;
}
return 0;
}