leetcode-49. 字母异位词分组

49. 字母异位词分组

  • 首先根据题意得知,异位词指的是不同词中字母相同

  • 拆分这个词为char[]数组,经过排序char[]数组,再转换为字符串key,如果有两个key是一样的,就说明这两个词为异位词

  • 把这个key当作map集合的键,维护一个list作为map的值,每次如果搜到了相同的key就添加到list里,如果没搜到相同的key就新建一个list

class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> map = new HashMap<>();
for(String str : strs){
//首先根据题意得知,异位词中字母相同
char[] chars = str.toCharArray();//拆分这个词为char[]数组
Arrays.sort(chars); //经过排序char[]数组
String key = new String(chars); //再转换为字符串key,如果有两个key是一样的,就说明这两个词为异位词
List<String> list = map.getOrDefault(key, new ArrayList<>()); //把这个key当作map集合的键,维护一个list作为map的值,如果没搜到相同的key就新建一个list
list.add(str); //每次如果搜到了相同的key就添加到list里
map.put(key, list);
}
return new ArrayList<>(map.values());
}
}

 

posted on   老菜农  阅读(21)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

统计信息

点击右上角即可分享
微信分享提示