题解 | #牛棚品种分类#
牛棚品种分类
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;
}
}
