AnanagramsUva156

    xiaoxiao2021-12-14  19

    题意: 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词,在判断是否满足条件时,字母不分大小写,但在输出时应保留输入的大小写,按字典序进行排列。

    代码如下:

    #include<iostream> #include<algorithm> #include<vector> #include<map> using namespace std; string reset(const string &word) { string s = word; for(int i = 0; i < s.size(); i++){ s[i] = tolower(s[i]); } sort(s.begin(),s.end()); return s; } vector<string> words; map<string,int> cnt; int main() { string word; while(cin>>word){ if(word[0] == '#') break; words.push_back(word); string str = reset(word); if(!cnt.count(str)){ cnt[str] = 0; } cnt[str]++; } vector<string> ans; for(int i = 0; i < words.size(); i++){ if(cnt[reset(words[i])] == 1){ ans.push_back(words[i]); } } for(int i = 0; i < ans.size(); i++){ cout << ans[i] << endl; } sort(ans.begin(),ans.end()); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-969724.html

    最新回复(0)