49. 字母異位詞分組
49. 字母異位詞分組
難度中等1440
給你一個(gè)字符串?dāng)?shù)組,請(qǐng)你將?字母異位詞?組合在一起??梢园慈我忭樞蚍祷亟Y(jié)果列表。
字母異位詞?是由重新排列源單詞的字母得到的一個(gè)新單詞,所有源單詞中的字母通常恰好只用一次。
?
示例 1:
輸入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
輸出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
輸入: strs = [""]
輸出: [[""]]
示例 3:
輸入: strs = ["a"]
輸出: [["a"]]
?
提示:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i]
?僅包含小寫字母
這題中需要根據(jù)字符串的特點(diǎn)來(lái)分類字符串,需要看特點(diǎn)的題目就想要不要用哈希表。
第一種對(duì)法:(排序)
class?Solution?{
public:
????vector<vector<string>>?groupAnagrams(vector<string>&?strs)?{
????????unordered_map<string,vector<string>>?mp;
????????for(string?str:strs){
????????????string?key?=?str;
????????????sort(key.begin(),key.end());
????????????mp[key].emplace_back(str);
????????}
????????vector<vector<string>>ans;
????????for(auto?it=mp.begin();it!=mp.end();it++){
????????????ans.emplace_back(it->second);
????????}
????????return?ans;
????}
};
map的迭代器想要取value的值就要it->second