侧边栏壁纸
  • 累计撰写 29 篇文章
  • 累计创建 18 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

49. 字母异位词分组

bsdlzg
2022-10-20 / 0 评论 / 0 点赞 / 133 阅读 / 247 字

题目如下:

leetcode第49题

解题思想:

  字母异位词其实就是同一字母的不同排列组合出现的单词,根据提供的字符串进行匹配查找。那么如果解决字母的不同位置呢?hash值可以吗?可以,但是我们的做一下处理,先对字符串进行排序,保证相同字母排序完后的一致性,从而得到的hashcode是一样的。

  然后根据map的get、set操作进行逻辑判断即可完成题解。

具体代码实现

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
        for (String str : strs) {
            char[] chars = str.toCharArray();
            Arrays.sort(chars);
            String kk = String.valueOf(chars);// 排序字母顺序
            if (map.containsKey(kk)) {
                map.get(kk).add(str);
            } else {
                ArrayList<String> newList = new ArrayList<String>();
                newList.add(str);
                map.put(kk,newList);
            }
        }
        return new ArrayList<List<String>>(map.values());
    }
}
0

评论区