我的想法:双重for+hashset
方法一
由于互为字母异位词的两个字符串包罗的字母雷同,因此对两个字符串分别进行排序之后得到的字符串一定是雷同的,故可以将排序之后的字符串作为哈希表的键。
- 力扣官方
values()方法返回一个包罗HashMap中全部值的Collection集合。(也就是说<KEY,VALUE>中取出全部value)
- class Solution {
- public List<List<String>> groupAnagrams(String[] strs) {
- HashMap<String,List<String>>map = new HashMap<>();
- for(String str:strs) {
- //原始数据 str
- char[] ch = str.toCharArray();
- Arrays.sort(ch);
- String key = new String(ch);
- List<String>list = map.getOrDefault(key,new ArrayList<String>());
- list.add(str);
- map.put(key, list);
- }
- return new ArrayList<List<String>>(map.values());
- }
- }
复制代码 string排序
- import java.util.Arrays;
-
- public class StringSortExample {
- public static void main(String[] args) {
- // 字符串数组
- String[] strings = {"banana", "apple", "cherry", "date"};
-
- // 对字符串数组进行排序
- Arrays.sort(strings);
-
- // 输出排序后的数组
- for (String str : strings) {
- System.out.println(str);
- }
- }
- }
复制代码
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.List;
-
- public class StringSortExample {
- public static void main(String[] args) {
- // 创建字符串列表
- List<String> stringList = Arrays.asList("banana", "apple", "cherry", "date");
-
- // 对字符串列表进行排序
- Collections.sort(stringList);
-
- // 输出排序后的列表
- for (String str : stringList) {
- System.out.println(str);
- }
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |