変換関数の使用に注意してください
中国語訳:
#include<iostream>
#include<algorithm>
#include<map>
#include<cctype>
#include<string>
#include<vector>
using namespace std;
map<string,int> world;
vector<string> ss;
string aa;
bool cmp(char xx,char yy)
{
return xx<yy;
}
bool cmp_2(string aa,string bb)
{
return aa<bb;
}
int main()
{
while(cin>>aa && aa!="#")
{
ss.push_back(aa);
transform(aa.begin(),aa.end(),aa.begin(),::tolower); //第四个传入op函数,加::表示C++的变小写函数,否则会报错
sort(aa.begin(),aa.end(),cmp);
// cout<<" "<<aa<<" ";
if(world.find(aa)!=world.end())
{
world[aa]++;
}else {
world[aa]=1;
}
}
sort(ss.begin(),ss.end(),cmp_2);
string kk;
for(int i=0;i<ss.size();i++)
{
kk=ss[i];
transform(kk.begin(),kk.end(),kk.begin(),::tolower);
sort(kk.begin(),kk.end(),cmp);
if(world[kk]==1)
cout<<ss[i]<<endl;
}
return 0;
}