Leetcode题目总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode题目总结相关的知识,希望对你有一定的参考价值。

一些不能一次bug-free的题目

Scramble String

"great" -> "rgtae"

方法一:使用分治。需要注意的是前段和后端匹配时候的表达式,不能想当然。

技术分享
 1 public boolean isScramble(String s1, String s2) {
 2         if (s1.length() != s2.length()) {
 3             return false;
 4         }
 5         if (s1.equals(s2)){
 6             return true;
 7         }
 8         int n = s1.length();
 9         int[] chars = new int[26];
10         for (int i = 0; i < n; i++) {
11             chars[s1.charAt(i) - ‘a‘]++;
12             chars[s2.charAt(i) - ‘a‘]--;
13         }
14         for (int i = 0; i < 26; i++) {
15             if (chars[i] != 0) {
16                 return false;
17             }
18         }
19         for (int i = 1; i < n; i++) {
20             if (isScramble(s1.substring(0, i), s2.substring(0, i)) 
21                 && isScramble(s1.substring(i), s2.substring(i))) {
22                 return true;
23             }
24             if (isScramble(s1.substring(0, i), s2.substring(n - i)) && isScramble(s1.substring(i), s2.substring(0, n - i))) {
25                 return true;
26             }
27         }
28         return false;
29     }
View Code

方法二:很容易注意到这里是可以使用DP的。

以上是关于Leetcode题目总结的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode题目总结

LeetCode笔记:Weekly Contest 242 比赛记录

LeetCode笔记:Weekly Contest 309

LeetCode笔记:Weekly Contest 309

LeetCode笔记:Biweekly Contest 86

LeetCode笔记:Biweekly Contest 86