zoukankan      html  css  js  c++  java
  • <String> 49 87

    49. Group Anagrams

    class Solution {
        public List<List<String>> groupAnagrams(String[] strs) {
            HashMap<String, List<String>> map = new HashMap<>();
            if(strs == null || strs.length == 0){
                return new ArrayList<List<String>>();  
            }
            
            for(String str : strs){
                int[] arr = new int[26];
                for(int i = 0; i < str.length(); i++){
                    arr[str.charAt(i) - 'a']++;
                }
                String key = Arrays.toString(arr);
                List<String> tempList = map.getOrDefault(key, new ArrayList<String>());
                tempList.add(str);
                map.put(key, tempList);
            }
            return new ArrayList<List<String>>(map.values());
        }
    }

    87. Scramble String

    递归

    简单的说,就是s1和s2是 scramble 的话,那么必然存在一个在 s1 上的长度 l1,将 s1 分成 s11 和 s12 两段,同样有 s21 和 s22,那么要么 s11 和 s21 是 scramble 的并且 s12 和 s22 是 scramble 的;要么 s11 和 s22 是 scramble 的并且 s12 和 s21 是 scramble 的。

    class Solution {
        public boolean isScramble(String s1, String s2) {
            if(s1.equals(s2)) return true;
            
            int[] letters = new int[26];
            for(int i = 0; i < s1.length(); i++){
                letters[s1.charAt(i) - 'a']++;
                letters[s2.charAt(i) - 'a']--;
            }
            
            for(int i = 0; i < 26; i++){
                if(letters[i] != 0) return false;
            }
            
            for(int i = 1; i < s1.length(); i++){
                if(isScramble(s1.substring(0, i), s2.substring(0, i))
                   && isScramble(s1.substring(i), s2.substring(i))) return true;
                if(isScramble(s1.substring(0, i), s2.substring(s2.length() - i))
                  && isScramble(s1.substring(i), s2.substring(0, s2.length() - i))) return true;
            }
            return false;
        }
    }
  • 相关阅读:
    YUI+Ant 实现JS CSS压缩
    13.QT-QMainWindow组件使用
    12.QT4.7.4-解决WIN平台和Linux平台中文乱码,QLineEdit右击菜单中文显示
    11.QT-布局管理器(Box,Grid,Form,Stacked)
    10.QT-定时器
    9.QT-标准对话框
    8.QT-对话框(模态与非模态)
    7.QT-Qt对象间的父子关系
    6.QT-简易计算器实现(详解)
    5.QT-QString类
  • 原文地址:https://www.cnblogs.com/Afei-1123/p/11885297.html
Copyright © 2011-2022 走看看