leetCode C++ 49. 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
生活随笔
收集整理的這篇文章主要介紹了
leetCode C++ 49. 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、思路:
? ? ? 對每一個字符串排序,然后將這個排序的字符串加到map里面,對于每一個新遍歷的字符串就和map比較是否相等。
? ? ? 最開始用map,會出現超時,于是采用hash實現結構的unordered_map就不會超時,在50%的效率左右
二、代碼:
class Solution { public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string, int> stringCountMap;for (string str : strs) {string temp = str;sort(temp.begin(), temp.end());if (stringCountMap.count(temp) > 0){res[stringCountMap[temp]].push_back(str);}else {stringCountMap.insert(pair<string, int>(temp, stringCountMap.size()));vector<string> resList = { str };res.push_back(resList);}}return res;} private:vector<vector<string>> res; };?
總結
以上是生活随笔為你收集整理的leetCode C++ 49. 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode C++ 46. 全排列
- 下一篇: C++ leetcode 19. 删除链