AnagramsGrouping题目描述:给定一个字符串数组,将这些字母组合在一起。字谜是一串具有相同字母但排列不同的字符。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:Hash判断需要用hash的方法来判断是否是字谜,所以用Hashmap来判断排序后的字母是否相同。具体过程如下。声明一个Hashmap,即tempResult,用来记录临时结果,其中key是一个anagramword是相同排序的字母串,value是相同错位不同排列的字符串集合。遍历strs:首先将当前str转化为字符数组chars,然后使用Arrays.sort(chars)方法对其进行排序,再将chars字符数组转化为字符串sortedStr,也就是anagram转化而来的同一个字符串,然后判断tempResult的key中是否存在sortedStr。如果不存在,则初始化一个List作为values,并将当前的str加入到list中,然后将对应的key,即sortedStr,以及对应的values放入tempResult;如果tempResult的key中存在sortedStr,则将当前str放入sortedStr对应的list中。然后处理下一个字符串。最后返回给tempResult的值就是最终的结果。importjava.util.*;publicclassLeetCode_049{publicstaticList>groupAnagrams(String[]strs){Map
>result=newArrayList<>();结果.addAll(tempResult.values());返回结果;}publicstaticvoidmain(String[]args){String[]strs=newString[]{"eat","tea","tan","ate","nat","bat"};列表<列表<字符串>>lists=groupAnagrams(strs);for(List
