学习了map用法, 特别是count的用法:size_type count (const key_type& k) const;
Count elements with a specific key. Searches the container for elements with a key equivalent to k and returns the number of matches. return 1 if the container contains an element whose key is equivalent to k, or zero otherwise.
// uva156.cpp
#include <iostream>
#include <string>
#include <cctype>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
map<string, int> cnt;
vector<string> words;
char my_tolower(char c){ return tolower(c); }
string std_form(string s){
transform(s.begin(), s.end(), s.begin(), my_tolower);
sort(s.begin(), s.end());
return s;
}
int main(){
ios::sync_with_stdio(false);
string word;
words.clear();
while((cin >> word) && word[0] != '#'){
words.push_back(word);
word = std_form(word);
if ( !cnt.count(word) ) cnt[word] = 1;
else cnt[word]++;
}
sort(words.begin(), words.end());
for(vector<string>::iterator it = words.begin(); it != words.end(); it++){
if (cnt[ std_form(*it) ] == 1) cout << *it << endl;
}
return 0;
}