• #leetcode#Anagrames


    Given an array of strings, return all groups of strings that are anagrams.

    Note: All inputs will be in lower-case.

    分析:推断两个String是不是anagrams,比較简单的方法就是先转换成charArray,然后排序,然后又一次生成String。看是否同样。 这个String能够作为Key, Value放原String。

    这里我犯了一个错误,就是推断是否要加当前value时推断 list.size() 是否为0, 事实上应该推断size是否大于等于2, 也就是是否大于1。 由于至少出现一对String才算一个group啊....   差之毫厘,失之千里 !!

    另外一个地方须要注意就是对HashMap的遍历方法, 能够用Iterator。 也能够直接用map.values(), 

    假设用Iterator,则最后的遍历部分代码为:

    Iterator iter = map.values().iterator();
            while(iter.hasNext()){
                List<String> list = (List<String>)iter.next();
                if(list.size() > 1){
                    res.addAll(list);
                }
            }



    public class Solution {
        public List<String> anagrams(String[] strs) {
            List<String> res = new ArrayList<>();
            if(strs == null || strs.length == 0){
                return res;
            }
            
            Map<String, List<String>> map = new HashMap<>();
            for(String str : strs){
                char[] arr = str.toCharArray();
                Arrays.sort(arr);
                String tmp = new String(arr);
                if(!map.containsKey(tmp)){
                    List<String> item = new ArrayList<>();
                    item.add(str);
                    map.put(tmp, item);
                }else{
                    map.get(tmp).add(str);
                }
            }
            for(List<String> list : map.values()){
                // if(list.size() != 0){
                if(list.size() > 1){
                    res.addAll(list);
                }
            }
            return res;
        }
    }


  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6953594.html
Copyright © 2020-2023  润新知