首页 > 其他 > 详细

49. 字母异位词分组

时间:2021-06-12 11:16:51      阅读:30      评论:0      收藏:0      [点我收藏+]
package leetcode;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

public class demo_49 {
    public List<List<String>> groupAnagrams(String[] strs) {
        List<List<String>> list=new ArrayList<List<String>>();
        HashMap<String, List<String>> hm=new HashMap<String, List<String>>();
        for(String s:strs) {
            //对字符串进行排序,如果排序后的顺序一样则属于同一类
            char[] ch=s.toCharArray();
            Arrays.sort(ch);
            String s1="";
            for(char c:ch) {
                s1=s1+c;
            }
            //如果是同一类则加入到相应的List集合中
            if(hm.containsKey(s1)) {
                hm.get(s1).add(s);
            }
            //如果hashmap没有同一类,则创建一个新的类
            else {
                hm.put(s1, new ArrayList<String>());
                hm.get(s1).add(s);
            }
        }
        //将value都放到list集合中
        for(String s2:hm.keySet()) {
            list.add(hm.get(s2));
        }
        System.out.println(list);
        return list;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_49 d49=new demo_49();
        String[] strs= {"eat", "tea", "tan", "ate", "nat", "bat"};
        d49.groupAnagrams(strs);
    }

}

 

49. 字母异位词分组

原文:https://www.cnblogs.com/Yshun/p/14877812.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!