首页 > 代码库 > Leetcode#49 Anagrams
Leetcode#49 Anagrams
原题地址
Anagram:变位词。两个单词是变位词关系的条件是:组成单词的字符相同,只是顺序不同
第一次看这道题看了半天没明白要干嘛,丫就不能给个样例输入输出么。。后来还是看网上其他人的总结知道是怎么回事。
通常的做法是:把字符串内的字符排序,这样,凡是变位词都会变成相同的单词。用map记录这样的单词出现了几个,如果超过1个,则加入结果集中。
代码:
1 vector<string> anagrams(vector<string> &strs) { 2 vector<string> res; 3 map<string, int> record; 4 5 for (int i = 0; i < strs.size(); i++) { 6 string tmp = strs[i]; 7 sort(tmp.begin(), tmp.end()); 8 map<string, int>::iterator it = record.find(tmp); 9 if (it == record.end())10 record.insert(pair<string, int>(tmp, 1));11 else 12 it->second++;13 }14 15 for (int i = 0; i < strs.size(); i++) {16 string tmp = strs[i];17 sort(tmp.begin(), tmp.end());18 map<string, int>::iterator it = record.find(tmp);19 if (it->second > 1)20 res.push_back(strs[i]);21 }22 23 return res;24 }
Leetcode#49 Anagrams
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。