iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
0
自我挑戰組

有志者,事竟成。系列 第 18

Day18 LeetCode #49#242 Anagrams

前言

今天主題會是這兩題,是因為我LeetCode發信給我叫我寫242題(他每個禮拜都會發信,不知道是依照什麼會告訴你,你該寫哪一題)
但是我一打開來看?嗯?貌似是我寫過的49的簡單版......
所以今天就變這兩題啦!
不過就不按照題號順序了,畢竟242簡單到炸。

242 Valid Anagram

題目描述

給你兩字串s,t,判斷二者是否為英文重組詞。

思維

兩個字串sort後(會按照abc排),比較這兩者即可。

程式碼

class Solution {
public:
    bool isAnagram(string s, string t) {
        sort(s.begin(),s.end());
        sort(t.begin(),t.end());
        if(s==t)
            return true;
        return false;
    }
};

49 Group Anagrams

題目描述

給你多個字串,請將他們以英文重組詞來分類。

思維

創建一個hash表,以重組後的字串為value。
在find的時候,回傳其index,並依其index放到該放的群組中。

程式碼

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        vector<vector<string>> ans; 
        vector<string> hash;
        vector<string>::iterator result;
        for(int i=0;i<strs.size();i++)
        {
            string temp=strs[i];
            sort(temp.begin(),temp.end());
            result=find(hash.begin(),hash.end(),temp);
            if(result!=hash.end())
            {
                ans[result-hash.begin()].push_back(strs[i]);
            }
            else
            {
                ans.push_back({strs[i]});
                hash.push_back(temp);
            }
        }
        return ans;
    }
};

心路歷程

其實今天身體不舒服QAQ
貌似發燒了


上一篇
Day17 LeetCode #31#46#47 Permutation合集
下一篇
Day19 #12 #13 Integer and Roman Conversion
系列文
有志者,事竟成。19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言