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;
}
}

最新文章

  1. 7九章算法强化班全解--------Hadoop跃爷Spark
  2. SQL Server全时区转换
  3. matlab如何读取未知行数,带头文件和字段名的txt文件
  4. iOS 进阶 第二十天(0520)
  5. Codeforces Round #131 (Div. 2) : B
  6. LR报-27727错误解决办法
  7. eclipse编辑器,怎么创建PHP和JAVA的工程项目?
  8. PCB正片和负片有什么区别
  9. jQuery.data的是jQuery的数据缓存系统
  10. Database Connection Pool Library | Libzdb
  11. Java ClassLoader 原理分析
  12. Chrome浏览器扩展开发系列之十一:NPAPI插件的使用
  13. redis 订阅与发布
  14. Unicode 与 utf8 utf16 utf32的关系
  15. Swift学习之道
  16. jQuery.extend(object)
  17. 实验二:Linux下Xen环境的安装
  18. 2017CCPC秦皇岛 L题One-Dimensional Maze&amp;&amp;ZOJ3992【模拟】
  19. Ext.js入门
  20. C#根据字符串名称 得到对应的方法

热门文章

  1. 【Java语言特性学习之二】反射
  2. HTML连载21-序选择器上
  3. java架构之路-(nginx使用详解)nginx的反向代理和优化配置
  4. Kafka学习笔记之Kafka性能测试方法及Benchmark报告
  5. NET 判断是否为回文
  6. Winform中设置ZedGraph的X轴与Y轴的刻度不在对面显示
  7. Struts2框架简单介绍
  8. Java学习——日期类
  9. Java生鲜电商平台-库存管理设计与架构
  10. Java自学-集合框架 遍历