[Leetcode] 87. Scramble String
来源:互联网 发布:淘宝联盟的导购推广位 编辑:程序博客网 时间:2024/04/28 12:52
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.
Below is one possible representation of s1 = "great"
:
great / \ gr eat / \ / \g r e at / \ a t
To scramble the string, we may choose any non-leaf node and swap its two children.
For example, if we choose the node "gr"
and swap its two children, it produces a scrambled string "rgeat"
.
rgeat / \ rg eat / \ / \r g e at / \ a t
We say that "rgeat"
is a scrambled string of "great"
.
Similarly, if we continue to swap the children of nodes "eat"
and "at"
, it produces a scrambled string "rgtae"
.
rgtae / \ rg tae / \ / \r g ta e / \ t a
We say that "rgtae"
is a scrambled string of "great"
.
Given two strings s1 and s2 of the same length, determine if s2 is a scrambled string of s1.
public class Solution { public boolean isScramble(String s1, String s2) { if(s1 == null || s2 == null || s1.length() != s2.length()) return false; boolean[][][] res = new boolean[s1.length()][s2.length()][s1.length() + 1]; for(int i = 0; i < s1.length(); i++){ for(int j = 0; j < s2.length(); j++){ res[i][j][1] = s1.charAt(i) == s2.charAt(j); } } for(int len = 2; len <= s1.length(); len++){ for(int i = 0; i < s1.length() - len + 1; i++){ for(int j = 0; j < s2.length() - len + 1; j++){ for(int k = 1; k < len; k++){ res[i][j][len] |= (res[i][j][k] && res[i + k][j + k][len - k]) || (res[i][j + len - k][k] && res[i + k][j][len - k]); } } } } return res[0][0][s1.length()]; }}
0 0
- LeetCode 87. Scramble String
- [Leetcode] 87. Scramble String
- LeetCode --- 87. Scramble String
- [leetcode] 87.Scramble String
- Leetcode 87. Scramble String
- Leetcode 87. Scramble String
- Leetcode:87. Scramble String
- leetcode.87. Scramble String
- Leetcode 87. Scramble String
- [LeetCode] 87. Scramble String
- leetcode-87. Scramble String
- [LeetCode]87. Scramble String
- [LeetCode]87.Scramble String
- [LeetCode] 87. Scramble String
- 【LeetCode】87. Scramble String
- [LeetCode]87. Scramble String
- [leetcode] 87. Scramble String
- Leetcode 87. Scramble String
- Sublime Text3打造U盘便携Lua IDE
- UIAlertView点击确定后,如何跳转到storyboard中创建的另一个UIViewController?
- 黑马程序员-JAVASE入门(GUI类)
- lua实现大数运算
- 画线算法 - Bresenham原理及Java实现
- [Leetcode] 87. Scramble String
- [Leetcode] 88. Merge Sorted Array
- LeetCode - Longest Substring Without Repeating Characters
- 黑马程序员-JAVASE入门(多线程)
- 黑马程序员-JAVASE入门(集合)
- [Leetcode] 89. Gray Code
- 黑马程序员-JAVASE入门(枚举)
- 黑马程序员-JAVASE入门( 面向对象、单例设计模式、this、static关键字)
- [Leetcode] 90. Subsets II