map的练习题,先建立一个string到string的映射,再建立一个string到int的映射即可,
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pa;
int main() {
string s;
map<string, string> mp1;
map<string, int> mp2;
vector<string> v;
while (cin >> s && s != "#") {
string t = s;
for (int i = 0; i < t.size(); i++) {
t[i] = tolower(t[i]);
}
sort(t.begin(), t.end());
mp1[s] = t;
if (mp2.find(t) == mp2.end()) mp2[t] = 1;
else mp2[t]++;
v.pb(s);
}
sort(v.begin(), v.end());
for (int i = 0; i < v.size(); i++) {
if (mp2[mp1[v[i]]] == 1) cout << v[i] << endl;
}
return 0;
}