又是照着敲的,学习map了,但最后我改成直接用set储存了,省了重新排序的功夫了。
#include<iostream>
#include<map>
#include<string>
#include<set>
#include<algorithm>
#include<vector>
using namespace std;
vector<string> word;
string sort_set(const string& t) {
string cnt = t;
for(int i = 0; i < cnt.size(); i++)
cnt[i] = tolower(cnt[i]);
sort(cnt.begin(), cnt.end());
return cnt;
}
int main() {
string s;
map<string, int>cnt;
while(cin >> s) {
if(s == "#") break;
word.push_back(s);
string r = sort_set(s);
if(!cnt.count(r)) cnt[r] = 0;
cnt[r]++;
}
set<string>s1;
for(int i = 0; i < word.size(); i++)
if(cnt[sort_set(word[i])] == 1) s1.insert(word[i]);
for(set<string>::iterator it = s1.begin(); it != s1.end(); it++)
cout << * it << endl;
}