今天刷Leecode49. 字母异位词分组,遇到一个通过char[]获得字符串的问题,记录一下new String(chars) || chars.toString() || String.valueOf(chars)三者返回值的区别!
题目如下图所示
我的思路:
- 遍历字符数组中的每个字符串str;
- 首先将字符串通过toCharArray()转换为char[]数组;
- 然后对char[]进行排序;
- 再将排好序的char[]转换为字符串string;
- 将返回的字符砖string作为map的key,如果key存在,则证明当前字符串str为原字符数组中某个元素的字母异位词;否则,将string作为key,新建一个字符串集合作为value,将str加入value中。
- 当遍历完所有字符数组,也就完成了异位词的分组;
按照上述思路,代码书写如下:
public List<List<String>> groupAnagrams(String[] strs)
{
Map<String, List<String>> map = new HashMap<>();
for (String str : strs)
{
char[] chars = str