#include<bits/stdc++.h>
#define debug
using namespace std;
vector<string> ans;
vector<string> name;
map<string,int> exist;
string change(string st)
{
string tmp=st;
int l=st.length();
for(int i=0; i<l; i++)
tmp[i]=tolower(st[i]);
sort(tmp.begin(),tmp.end());
return tmp;
}
int main()
{
#ifdef debug
freopen("in.in","r",stdin);
#endif // debug
string st;
while(cin>>st)
{
//cout<<st<<endl;
if(st[0]=='#') break;
name.push_back(st);
string tmp=change(st);
// cout<<tmp<<endl;
if(!exist[tmp]) exist[tmp]=0;
exist[tmp]++;
// cout<<"flag"<<endl;
}
for(int i=0; i<name.size(); i++)
if(exist[change(name[i])]==1) ans.push_back(name[i]);
sort(ans.begin(),ans.end());
//cout<<ans.size()<<endl;
for(int i=0; i<ans.size(); i++)
cout<<ans[i]<<endl;
return 0;
}
题目地址: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=92
题解:将每个单词转化为统一格式(全部小写,字典序),用map判断只出现一次即可