Re: [閒聊] 每日LeetCode已回收
49. Group Anagrams
給你一些字串
把他們排序好
變成vector<vector<string>>
排序的規則是
當他們擁有的字母種類數量一樣就排在一起
像是dog god dgo 就排在一起
dog god dgo pap ppa
就會變成前三個排在一起 後兩個排在一起
排在一起就好 順序沒差
解法:
把他們通通丟進map裡面就好ㄌ
然後就可以用他們的字母數量當作key
陣列裡面放字串當value
然後改變他們的value
也就是後面的字串陣列
然後再把他們塞回去題目要求的陣列陣列
就好ㄌ
這是什麼奇怪的宣告方式阿
array<int,30>
為什麼不讓我直接int abc[30]
這兩個差在哪裡
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs)
{
map<array<int, 30>, vector<string>> paper;
int len = strs.size();
for(int i = 0 ; i < len ; i ++)
{
int lens = strs[i].size();
array<int, 30> chs = {};
for(int j = 0 ; j < lens ; j ++)
{
chs[strs[i][j]-'a'] ++ ;
}
paper[chs].push_back(strs[i]);
}
vector<vector<string>> res;
for(auto p : paper)
{
res.push_back(p.second);
}
return res;
}
};
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.28.91 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1707196169.A.4FB.html
推
02/06 13:21,
1年前
, 1F
02/06 13:21, 1F
→
02/06 13:22,
1年前
, 2F
02/06 13:22, 2F
→
02/06 13:22,
1年前
, 3F
02/06 13:22, 3F
→
02/06 13:22,
1年前
, 4F
02/06 13:22, 4F
推
02/06 13:23,
1年前
, 5F
02/06 13:23, 5F
→
02/06 13:26,
1年前
, 6F
02/06 13:26, 6F
→
02/06 13:26,
1年前
, 7F
02/06 13:26, 7F
推
02/06 13:27,
1年前
, 8F
02/06 13:27, 8F
→
02/06 13:28,
1年前
, 9F
02/06 13:28, 9F
推
02/06 13:28,
1年前
, 10F
02/06 13:28, 10F
→
02/06 13:31,
1年前
, 11F
02/06 13:31, 11F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 654 之 719 篇):