49. Group Anagrams 字母異位詞分組

題目鏈接
tag:

  • Medium;

question:
??Given an array of strings, group anagrams together.

Example:

Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]

Note:

  • All inputs will be in lowercase.
  • The order of your output does not matter.

思路:
??這道題讓我們?nèi)航M給定字符串集中所有的錯(cuò)位詞,所謂的錯(cuò)位詞就是兩個(gè)字符串中字母出現(xiàn)的次數(shù)都一樣,只是位置不同,比如abc,bac, cba等它們就互為錯(cuò)位詞,那么我們?nèi)绾闻袛鄡烧呤欠袷清e(cuò)位詞呢,我們發(fā)現(xiàn)如果把錯(cuò)位詞的字符順序重新排列,那么會(huì)得到相同的結(jié)果,所以重新排序是判斷是否互為錯(cuò)位詞的方法,由于錯(cuò)位詞重新排序后都會(huì)得到相同的字符串,我們以此作為key,將所有錯(cuò)位詞都保存到字符串?dāng)?shù)組中,建立key和字符串?dāng)?shù)組之間的映射,最后再存入結(jié)果res中即可,AC代碼如下:

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        vector<vector<string>> res;
        unordered_map<string, vector<string>> m;
        for (string str : strs) {
            string s = str;
            sort(s.begin(), s.end());
            m[s].push_back(str);
        }
        
        for (auto a : m)
            res.push_back(a.second);
        return res;
    }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目描述: 給定一個(gè)字符串?dāng)?shù)組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。 示例: 輸入:...
    夜空中最亮的星_6c64閱讀 395評(píng)論 0 0
  • 題目給定一個(gè)字符串?dāng)?shù)組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。 示例:輸入: ["ea...
    HITZGD閱讀 471評(píng)論 0 0
  • 已知一組字符串,將所有anagram(由顛倒字母順序而構(gòu)成的字)放到一起輸出。例如:["eat", "tea", ...
    徐凱_xp閱讀 965評(píng)論 0 1
  • Given an array of strings, group anagrams together.For ex...
    DrunkPian0閱讀 493評(píng)論 0 0
  • 隔窗聽(tīng)雨,淅淅瀝瀝,落在屋檐,落在窗臺(tái),落滿眼眸,而此刻,我的心情是極好的。 剛剛跟老公視頻,他正忙得昏頭轉(zhuǎn)向,還...
    心繭成蝶閱讀 624評(píng)論 2 10

友情鏈接更多精彩內(nèi)容