LeetCode OJ 之 Anagrams (回文构词法)
来源:互联网 发布:美工工作流程 编辑:程序博客网 时间:2024/06/05 20:54
题目:
Given an array of strings, return all groups of strings that are anagrams.(给定一组字符串,返回符合回文构词法的单词组,即如果某几个单词是回文单词,则放入一个容器中并返回)。
Note: All inputs will be in lower-case.(所有的输入都是小写)
Anagram(回文构词法)是指打乱字母顺序从而得到新的单词,比如 "dormitory" 打乱字母顺序会变成 "dirtyroom" , "tea" 会变成"eat"。
回文构词法有一个特点:单词里的字母的种类和数目没有改变,只是改变了字母的排列顺序。
因此,将几个单词按照字母顺序排序后,若它们相等,则它们属于同一组 anagrams 。
思路:
可以使用unordered_map<string,vector<string> >把Anagram单词排序后的单词作为键,排序前的单词作为值,这些值放到一个容器中,即一个键对应多个值。如果这个值内单词的个数>1,说明存在Anagram单词,则加入到结果容器中。如果=1,说明不存在对应的Anagram词。
代码:
class Solution {public: vector<string> anagrams(vector<string> &strs) { vector<string> result;//保存结果 unordered_map<string,vector<string> > groups;//键值对//先把键值对对应起来 for(int i = 0 ; i < strs.size() ; i++) { string word = strs[i]; sort(word.begin(),word.end());//对当前单词排序 groups[word].push_back(strs[i]);//插入键值对 }//统计值中单词的个数是否>1,如果>1则把这个容器值插入到result的尾部 for(unordered_map<string,vector<string> >::iterator iter = groups.begin() ; iter != groups.end() ; iter++) { if(iter->second.size() > 1) { result.insert(result.end(),iter->second.begin(),iter->second.end()); } } return result; }};
0 0
- LeetCode OJ 之 Anagrams (回文构词法)
- [LeetCode]—Anagrams 回文构词法
- [LeetCode(Q49)] Anagrams (回文构词法)
- leetCode 49.Anagrams (回文构词法) 解题思路和方法
- 回文构词法
- leetcode Anagrams Group(回文构词 分组)
- Anagram(回文构词法),哈希映射
- LeetCode OJ算法题(四十八):Anagrams
- LeetCode OJ:Anagrams
- LeetCode OJ - Anagrams
- LeetCode OJ Anagrams
- LeetCode OJ:Group Anagrams
- LeetCode OJ 之 Palindrome Number(回文数字)
- LeetCode OJ 之 Valid Palindrome(回文字符串)
- LeetCode OJ 之 Palindrome Partitioning (字符串的回文分割)
- <LeetCode OJ> 49. Group Anagrams
- LeetCode OJ-49.Group Anagrams
- LeetCode进阶之路(Group Anagrams)
- matlab提供的变换函数
- 【大话设计模式】--初涉设计模式
- LINQ——查询
- 8888
- java 抽象类 接口 Object类
- LeetCode OJ 之 Anagrams (回文构词法)
- 遇到一个ie下新窗口访问父级界面数组很慢的问题,甚是奇怪
- Linux之Makefile(basename)
- Android 安全学习
- Ubuntu14.04 配置nginx 与 php-fpm
- leetcode palindrome-partitioning
- 罗永浩:锤子手机一共卖了12万部,我已经交出微博密码
- 练手小项目(5)安全卫士_软件管理器
- Linux之Makefile(addsuffix)