网站搜索下拉是怎么做的,亚马逊产品开发流程,wordpress attachment.php,网站建站网站域名申请给你一个字符串数组#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 两个字符串互为字母异位词#xff0c;当且仅当两个字符串包含的字母相同。同一组字母异位词中的字符串具备相同点请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 两个字符串互为字母异位词当且仅当两个字符串包含的字母相同。同一组字母异位词中的字符串具备相同点可以使用相同点作为一组字母异位词的标志使用哈希表存储每一组字母异位词哈希表的键为一组字母异位词的标志哈希表的值为一组字母异位词列表。
遍历每个字符串对于每个字符串得到该字符串所在的一组字母异位词的标志将当前字符串加入该组字母异位词的列表中。遍历全部字符串之后哈希表中的每个键值对即为一组字母异位词。
以下的两种方法分别使用排序和计数作为哈希表的键。
方法 由于互为字母异位词的两个字符串包含的字母相同因此对两个字符串分别进行排序之后得到的字符串一定是相同的故可以将排序之后的字符串作为哈希表的键。
官解代码
class Solution {public ListListString groupAnagrams(String[] strs) {MapString, ListString map new HashMapString, ListString();for (String str : strs) {char[] array str.toCharArray();Arrays.sort(array);String key new String(array);ListString list map.getOrDefault(key, new ArrayListString());list.add(str);map.put(key, list);}return new ArrayListListString(map.values());}
}map.getOrDefault(key, defaultValue) 是一个 HashMap 类的方法。它用于获取指定键的值并在键不存在时返回一个默认值。如果指定的键存在于 HashMap 中则返回与该键关联的值如果键不存在则返回指定的默认值。 该方法的参数包括 key要获取值的键defaultValue如果键不存在时要返回的默认值 使用 map.getOrDefault(key, defaultValue) 方法可以避免在获取值时出现空指针异常因为即使键不存在它也会返回一个默认值。 在上述示例中我们使用 map.getOrDefault(sortedStr, new ArrayList()) 来获取已排序的字符串对应的值列表。如果已排序的字符串作为键存在于 map 中则返回与该键关联的值列表如果键不存在则创建一个新的空列表作为默认值。这样可以确保在将原始字符串添加到值列表中时不会出现空指针异常。