前言
- transform函数对字符串进行处理,小写和排序
- 保留了原字符串,符合条件的插入set中自动排序
#include <iostream>
#include <set>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
string transform(string str) {
string res = str;
for (int i = 0; i < str.size(); i++)
res[i] = tolower(str[i]);
sort(res.begin(), res.end());
return res;
}
int main() {
string str;
map<string, int> dict;
map<string, string> trans2ori;
while (cin >> str) {
if (str == "#")
break;
string tmp = transform(str);
trans2ori[tmp] = str;
dict[tmp] = dict.count(tmp) + 1;
}
set<string> res;
for (auto& p : dict)
if (p.second == 1)
res.insert(trans2ori[p.first]);
for (string str : res) // 自动排序
cout << str << endl;
}