今天主題會是這兩題,是因為我LeetCode發信給我叫我寫242題(他每個禮拜都會發信,不知道是依照什麼會告訴你,你該寫哪一題)
但是我一打開來看?嗯?貌似是我寫過的49的簡單版......
所以今天就變這兩題啦!
不過就不按照題號順序了,畢竟242簡單到炸。
給你兩字串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;
}
};
給你多個字串,請將他們以英文重組詞來分類。
創建一個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
貌似發燒了