面试题 10.02. 变位词组
Posted 这是一个很随便的名字
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题 10.02. 变位词组相关的知识,希望对你有一定的参考价值。
编写一种方法,对字符串数组进行排序,将所有变位词组合在一起。变位词是指字母相同,但排列不同的字符串。
注意:本题相对原题稍作修改
示例:
输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
输出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
说明:
所有输入均为小写字母。
不考虑答案输出的顺序。
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> ret;
unordered_map<string,int> mp;
for(auto s:strs)
{
string ss = s;
sort(s.begin(),s.end());
auto it = mp.find(s);
if(it==mp.end())
{
mp[s]=ret.size();
ret.push_back(vector<string>({ss}));
}
else
{
ret[it->second].push_back(ss);
}
}
return ret;
}
};
以上是关于面试题 10.02. 变位词组的主要内容,如果未能解决你的问题,请参考以下文章