当前位置:   article > 正文

【LeetCode热题100】【哈希】字母异位词分组_leetcode 字母异位词分组

leetcode 字母异位词分组

题目链接:49. 字母异位词分组 - 力扣(LeetCode)

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

题目的意思是将这些单词分类,由相同字母组成的单词分为一类

可以想到的是将所有单词重新排序,相同的划分为一类

用哈希映射,重新排序的单词作为key,value为原本单词的类,用容器来装这一个类的单词

C++实现

  1. class Solution {
  2. public:
  3. vector<vector<string>> groupAnagrams(vector<string>& strs) {
  4. unordered_map<string,vector<string>>hash;
  5. for(auto&word:strs){
  6. string key=word;
  7. sort(key.begin(),key.end());
  8. hash[key].push_back(word);
  9. }
  10. vector<vector<string>>answer;
  11. for(auto it=hash.begin();it!=hash.end();it++){
  12. answer.push_back(it->second);
  13. }
  14. return answer;
  15. }
  16. };

Rust

  1. use std::collections::HashMap;
  2. impl Solution {
  3. pub fn group_anagrams(strs: Vec<String>) -> Vec<Vec<String>> {
  4. let mut map=HashMap::new();
  5. for str in strs{
  6. let mut key=str.clone().into_bytes();
  7. key.sort();
  8. map.entry(key).or_insert(vec![]).push(str);
  9. }
  10. map.into_values().collect()
  11. }
  12. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/990658
推荐阅读
相关标签
  

闽ICP备14008679号