在美版leetcode上看到大神的思路,用質數表示26個字母,把字串的各個字母相乘,這樣可保證字母異位詞的乘積必定是相等的。其餘步驟就是用map儲存注意這裡直接將list 作為值放入到map中,後續用add方法,更新map,此外注意更新map的寫法以及遍歷map值的寫法
beat 99.52% 98.98%
class
solution
; map
> map=
newhashmap
<
>()
;for
(int i=
0;i(map.
containskey
(sum)
)else
} list
> result=
newarraylist
<
>()
;for
(map.entry
> entry:map.
entryset()
)return result;
}}```
LeetCode No 49 字母異味詞分組
根據題目可以看到結果返回的是乙個list巢狀list,又是要求 字母相同,位置不同即可為一組 根據題意可以利用map的key的唯一性,將字串轉為字元陣列並進行排序。加入map 排序後的字串數再轉為字串,若其存在於key,則把key對應的list取出,並把初始字串新增進list。然後把list放回ma...
49 字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。思路 這個題的思路非常清晰,遍歷字串陣列,對其中每乙個...
49 字母異位詞分組
arrays.sort排序的時間複雜度為o slogs 外面還有n次迴圈,總共為nslogs,s為字串的長度。空間複雜度為o ns hashmap儲存了每個字串 1 我對arraylist操作不熟,還有arrays.sort 得趕緊學習了 2 乙個字串會有原始字元,所以只要知道原始字元,原始字元下一...