记录与2019年,时间真的如流水
这就相当于把string分组嘛,相同的组的string的字符一样。自然而然想到了map。那么key呢,把所有的字符串都归一化成一种样式,比如从小到大排序,或者从大到小排序,只要大家都遵守一样的规则就欧克了。
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> result = new HashMap<>();
for(String str : strs) {
String key = sortStr(str);
if(result.containsKey(key)) {
result.get(key).add(str);
}else {
List<String> value = new ArrayList<>();
value.add(str);
result.put(key, value);
}
}
List<List<String>> res = new ArrayList<>();
res.addAll(result.values());
return res;
}
private String sortStr(String str) {
char[] chars = str.toCharArray();
Arrays.sort(chars);
return String.valueOf(chars);
}
}
那么来发散一下
1 char[] .toString
到底返回了什么
重载objec
t的toStirng
方法,返回类型@hash
值
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
类可以重写该函数,输出自己想要的结果。
2 如何转成String
(1)强转,(String)
,强转用instanceof
做类型检查,来判断是否可以转换。否则类型不匹配,抛出CalssCastException
异常。
(2).toString()
object
不能为null
,否则会抛出NullPointerException
异常。
(3)String.valueOf()
挺好的,但是如果object
为null
,会返回字符串"null"
(4)Arrays.toString(char[] a)
,返回的是 用逗号分隔,包围[]的字符串。
(5)new String(char[] a)
也可