你在找工作的过程中,是否因为算法题目而错失良机?每次对面试官各种算法题目而力有不逮?那么从现在开始参与【不看答案挑战,每天刷一道LeetCode题目】
挑战开始
每天一道 LeetCode 题,不看答案,独立完成。这不仅仅是一个刷题的过程,更是一种锻炼思维、培养毅力和解决问题能力的方式。
具体挑战内容如下:
- 每日刷题:每天笔者为大家从 LeetCode 中选择一道新的算法题进行解答,以**【Medium】**为主
- 不看答案:在整个解题过程中,尽量不查看任何形式的参考答案。
- 记录过程:每次解题后,记录你的解题思路和遇到的挑战。
- 持续坚持:尽量每天坚持完成一道题目,看看你能连续几天坚持下来。
- 总结与反思:每周或每月对你的解题过程进行总结,反思哪些方法和技巧对你最有效,哪些需要进一步改进。
- 分享打卡:完成挑战的同学可以在评论区留言,笔者会为每一位完成调整的同学点赞评论留言
题目【Medium】
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
输入: strs = [""]
输出: [[""]]
示例 3:
输入: strs = ["a"]
输出: [["a"]]
大家可以开始思考如何解答了哦。没有思路的同学可以稍稍往下滑动看一下参考思路
参考思路
标签
- 数组
- 哈希表
- 字符串
- 排序
思路
- 字母相同,但排列不同的字符串,排序后都一定是相同的。因为每种字母的个数都是相同的,那么排序后的字符串就一定是相同的。
不要在往下滑了哦 😃 加油!
不要在往下滑了哦 😃 加油!
不要在往下滑了哦 😃 加油!
答案
public List<List<String>> groupAnagrams(String[] strs) {
return new ArrayList<>(Arrays.stream(strs).collect(Collectors.groupingBy(str -> {
char[] chars = str.toCharArray();
Arrays.sort(chars);
return new String(chars);
})).values());
}
更多惊喜
我还将定期分享:
-
最新互联网资讯:让你时刻掌握行业动态。
-
AI前沿新闻:紧跟技术潮流,不断提升自我。
-
技术分享与职业发展:助你在职业生涯中走得更远、更稳。
-
程序员生活趣事:让你在忙碌的工作之余找到共鸣与乐趣。
关注回复【1024】惊喜等你来拿!