根據題目可以看到結果返回的是乙個list巢狀list,又是要求「字母相同,位置不同即可為一組」
根據題意可以利用map的key的唯一性,將字串轉為字元陣列並進行排序。加入map
排序後的字串數再轉為字串,若其存在於key,則把key對應的list取出,並把初始字串新增進list。然後把list放回map
若不存在,則新建乙個list,將初始字串新增進list,然後把list放回map
public class solution
return new arraylist>(ans.values());}}
LeetCode No 49字母異位詞分組
在美版leetcode上看到大神的思路,用質數表示26個字母,把字串的各個字母相乘,這樣可保證字母異位詞的乘積必定是相等的。其餘步驟就是用map儲存 注意這裡直接將list 作為值放入到map中,後續用add方法,更新map,此外注意更新map的寫法以及遍歷map值的寫法 beat 99.52 98...
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 乙個字串會有原始字元,所以只要知道原始字元,原始字元下一...