LeetCode探索之旅(111)-49

it2022-05-05  134

今天继续刷LeetCode,第49题,将字母颠倒的字符串进行归类。

分析: 遍历所有字符串,并对每一个字符串进行排序,然后将每一个放入到哈希表中,属于同一种的放在一个容器中。

问题: 1、哈希表的使用,遍历,查找,增加、删除;

附上C++代码:

class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string>> res; int index=0; unordered_map<string,int> m; for(int i=0;i<strs.size();i++) { string str=strs[i]; sort(str.begin(),str.end()); if(m.find(str)==m.end()) { m[str]=index; index++; res.push_back(vector<string> {}); } res[m[str]].push_back(strs[i]); } return res; } };

附上Python代码:

class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: ret={} for st in strs: sort_st=self.sort(st) # print(sort_st) if sort_st in ret: ret[sort_st].append(st) else: ret[sort_st]=[st] return list(ret.values()) def sort(self,st): st=list(st) st=''.join(sorted(st)) return st

最新回复(0)