49. Group Anagrams
来源:互联网 发布:作战网络装备 编辑:程序博客网 时间:2024/05/01 22:20
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
这题先得知道啥叫Anagrams,知道后其实很简单。
首先简单介绍一下Anagram(回文构词法)。Anagrams是指由颠倒字母顺序组成的单词,比如“dormitory”颠倒字母顺序会变成“dirty room”,“tea”会变成“eat”。
回文构词法有一个特点:单词里的字母的种类和数目没有改变,只是改变了字母的排列顺序。
For example:
Input: ["tea","and","ate","eat","den"]
Output: ["tea","ate","eat"]
思路:
使用map来记录某一类字符串在返回结果中的索引。
class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) {string s;map<string, int> anagramMap;vector<vector<string>> res;for (int i = 0; i < strs.size(); ++i) {//得到每一个字符串,并将其排序s = strs[i];sort(s.begin(), s.end());//如果map中没有当前的字符串,则将其加入map,以字符串为key,当前res的size为value//将当前的字符串也加入结果if (anagramMap.find(s) == anagramMap.end()){anagramMap[s] = res.size();vector<string> tmp;res.push_back(tmp);res[anagramMap[s]].push_back(strs[i]);}//如果map中存在当前字符串else{//将当前的字符串也加入结果res[anagramMap[s]].push_back(strs[i]);}}for (int i = 0;i<res.size();++i){sort(res[i].begin(),res[i].end());}return res;}};
0 0
- 49. Group Anagrams
- [leetcode] 49.Group Anagrams
- 49. Group Anagrams
- LeetCode 49. Group Anagrams
- [LeetCode]49. Group Anagrams
- leetcode 49. Group Anagrams
- 49. Group Anagrams LeetCode
- 49. Group Anagrams
- 49. Group Anagrams
- 49. Group Anagrams
- Leetcode 49. Group Anagrams
- 49. Group Anagrams
- LeetCode 49. Group Anagrams
- 49. Group Anagrams
- 49. Group Anagrams
- LeetCode 49. Group Anagrams
- [leetcode] 49. Group Anagrams
- LeetCode 49. Group Anagrams
- svn add后的数据如何 恢复/取消/还原
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session问题
- android数据存储读取2:文件存储(对比IOS)
- Hadoop学习(2)----hdfs shell命令
- 理解MySQL——索引与优化
- 49. Group Anagrams
- TCP/IP (转载)
- error: invalid storage class for function
- java面向对象学习笔记
- 那什么,想计算日期,datetime搞起
- Mac 配置PHP、Nginx、Mysql环境
- 最佳实践之Android代码规范
- Python批量删除指定文件夹下的指定类型的文件
- 如何解决使用ARC后出现的PerformSelector may cause a leak because its selector is unknown