#include <iostream>
#include <string.h>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
vector<string> words;
map<string,int> cnt;
string repr(string s){ //将单词s标准化,即:将该单词变为小写再将其各字符按字典序排列
for(int i=0; i<s.size(); ++i) s[i] = tolower(s[i]); //将每个字符变为小写
sort(s.begin(),s.end()); //将字符重新排序
return s;
}
int main(){
string s;
while(cin>>s){
if(s[0]=='#') break;
words.push_back(s); //将所有单词加入words,无论其是否满足条件
string r = repr(s); //标准化
cnt[r]++; //统计该类字符的个数
}
vector<string> ans;
for(int i=0; i<words.size(); ++i){ //筛选words中的单词
string w = words[i];
if(cnt[repr(w)]==1) ans.push_back(words[i]); //如果该单词不能通过重排得到(且不区分大小写),那么将其加入结果序列
}
sort(ans.begin(),ans.end()); //将结果序列中的单词排序
for(int i=0; i<ans.size(); ++i) puts(ans[i].c_str()); //输出
return 0;
}
uva156
最新推荐文章于 2021-06-13 18:14:14 发布