49. Group Anagrams
Given an array of strings, group anagrams together.
For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],
Return :
[
[“ate”, “eat”, “tea”],
[“nat”, “tan”],
[“bat”]
]
Note: All inputs will be in lower - case.
题意:
给定一个字符串数组,把字符相同的字符串放在一起。所有的输入都是小写字母。
思路:
主要是利用hash映射表来判断含有相同字符的字符串,但是字符串中的字符顺序不同,所以要对每个string字符转进行字典排序,由于对单词排序时,题目已经限定了单词只可能是26个小写字母组成的,所以可以使用计数排序,进一步加快算法的速度(排序部分速度从O(nlogn)变为O(n))。
1 | class Solution { |
Java Code
1 | class Solution { |