Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"] ,
Return:
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]
Note: All inputs will be in lower-case.
<Solution>首先,要了解什麼是 anagram
簡單說,就是一個字串,用同樣的字母再次重新排列
那這題是要將同個 anagram 的所有字串,都放在一起
因為 anagram 就是用樣字母重新排列
所以對於每個字串,都把它 sort 一次,這樣只要是同個 anagram,sort 之後就會一樣
因此就可以用來當作 hash map 的 key,藉此分群 (參考資料)
code 如下
c++
Kotlin
另外一種想法是,因為 anagram 都是用同樣的字母
可以用這些字母出現的次數來做一個 key,再用這個 key 來做 grouping
Kotlin
沒有留言:
張貼留言