系网站建设工作总结,建设厅资质管理网站,帮忙注册公司多少钱,网页设计行业题目描述
给你一个字符串数组#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1:
输入: strs [eat, tea, tan, ate, na…题目描述
给你一个字符串数组请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1:
输入: strs [eat, tea, tan, ate, nat, bat]
输出: [[bat],[nat,tan],[ate,eat,tea]]
示例 2:
输入: strs []
输出: [[]]示例 3:
输入: strs [a]
输出: [[a]] 思路解析
本题的意思很简单就是把字母组成相同的字符放在一个数组里面为此我们可以遍历数组将每个字符串先变为一个char数组然后对其进行排序因为一个字符串如果组成相同那么在排序后肯定是相同的。因此我们用一个map来储存每种字母组合将排序后的字符串作为key将原本的字符串作为value依次放入其中。
实现代码 public ListListString groupAnagrams(String[] strs) {HashMapString,ListString map new HashMap();ListListString res new ArrayList();for(String s:strs){char[] arr s.toCharArray();Arrays.sort(arr);String key new String(arr);ListString list map.getOrDefault(key,new ArrayList());list.add(s);map.put(key,list);}return new ArrayListListString(map.values());}