這個題目我是直接看的答案,其實考察的就是我們如何來表達兩個詞確實是異位詞:
所以我們主要還是從第二點出發。如下
1. 將字串中字元排序重組
這個思路就是對於乙個字串裡的所有字元進行排序然後重組,那異位詞肯定是相同的。**如下:
class
solution
return
newarraylist
(ans.
values()
);//有乙個方法,是map.values()
}}
2.將每個字元的次數記錄下來,組成乙個唯一的字串
也就是說例如bcb的次數可以記為[0,2,1,…],而cbb的次數也可以[0,2,1,…],這樣他們就相等了,**如下:
class
solution
string key = sb.
tostring()
;//同樣根據這個字串去字典裡找if(
!ans.
containskey
(key)
) ans.
put(key,
newarraylist()
);ans.
get(key)
.add
(s);
}return
newarraylist
(ans.
values()
);}}
答案參考的是leetcode官方題解,但思路上不算難。 LeetCode49 字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。設定乙個map向量,專門用來統計字串中,所有字元出現的...
LeetCode 49 字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。這道題的意思就是把含有相同字母的單詞歸類而已,思路其實...
LeetCode 49 字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 此題輸入的是乙個字串陣列,遍歷該陣列,然後將每個字串排序,排序後的字串作為 鍵 存入雜湊表,對應的...