Const
如果是字母异位词,那么排序后,字母的顺序是相同的。我们将排序后的字符串当作key,将字母异位词分组当作value存入map当中。 你只需要通过转换每个字符串获取map的key就可以找到自己应该去的单词分组,加入这个分组即可。
function groupAnagrams(strs: string[]): string[][] {
const map = new Map<string, string[]>();
const ans: string[][] = [];
for (let i = 0; i < strs.length; i++) {
const key = strs[i].split('').sort().join('');
const group = map.get(key) ?? [];
group.push(strs[i]);
map.set(key, group);
}
for (const [_, g] of map) {
ans.push(g);
}
return ans;
};
49.字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
示例 1:
输入:
strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出:
[["bat"],["nat","tan"],["ate","eat","tea"]]
解释:
"bat"
。"nat"
和"tan"
是字母异位词,因为它们可以重新排列以形成彼此。"ate"
,"eat"
和"tea"
是字母异位词,因为它们可以重新排列以形成彼此。示例 2:
输入:
strs = [""]
输出:
[[""]]
示例 3:
输入:
strs = ["a"]
输出:
[["a"]]
提示:
1 <= strs.length <= 10^4
0 <= strs[i].length <= 100
strs[i]
仅包含小写字母