题解 | #牛棚品种分类#
牛棚品种分类
https://www.nowcoder.com/practice/0b6068f804b9426aa737ea8606e8d5c3
知识点
字符串,哈希
解题思路
这道题的意思是将strs数组中,具有相同字符数量的字符串放一堆,最后返回个推推数组。
因为一堆中的字符数量相同,所以字符串排序过后字符就会一样,再将这个字符作为key放进map中,val就为原字符串通过“,”进行分割的字符串。
最后将map中的val进行遍历放到ans数组中,再根据字典序排个序返回。
Java题解
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param strs string字符串一维数组 * @return string字符串一维数组 */ private HashMap<String,String> map=new HashMap<>(); public String[] groupAnagrams (String[] strs) { for(String s:strs){ char[] arr=s.toCharArray(); Arrays.sort(arr); String s1=new String(arr); if(map.get(s1)==null) map.put(s1,s); else map.put(s1,map.get(s1)+","+s); } String[] ans=new String[map.size()]; int index=0; for(String val:map.values()){ ans[index++]=val; } Arrays.sort(ans); return ans; } }