东莞网站快速优化排名,wordpress 换域名后,做百度移动端网站,静态网页制作案例一、题目
给你一个字符串数组#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]]二、思路解析
这道题还是属于哈希表的一类罗根我最近就在刷这个专题所以看到一些不错的题都会写成博客分享出来哦。
这道题的解题思路是利用哈希表来分组同一组内都两两互为字母异位词。
具体步骤如下
遍历字符串数组 strs对于每个字符串将其转换为字符数组并进行排序得到排好序的字符串作为当前单词的 key。利用一个 HashMap 存储 key 和对应的字母异位词列表。遍历完所有单词后将 HashMap 中的值即字母异位词列表转换为 List 返回即可。
并且我用的哈希表参数是 String 和 String 数组。String 用来表示一组具有相同字母组成的异位词的排序后的字符串String 数组表示具有相同字母组成的异位词的集合。
三、完整代码
class Solution {public ListListString groupAnagrams(String[] strs) {MapString, ListString hash new HashMap();for(String s : strs){char[] tmp s.toCharArray();Arrays.sort(tmp);String key new String(tmp);if(!hash.containsKey(key)){hash.put(key, new ArrayList());}hash.get(key).add(s); }return new ArrayList(hash.values());}
} 以上就是本篇博客的全部内容啦如有不足之处还请各位指出期待能和各位一起进步