forked from lazzzis/LeetCode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
32 lines (31 loc) · 843 Bytes
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* @param {string} s1
* @param {string} s2
* @return {boolean}
*/
var isScramble = function(s1, s2) {
if (s1.length !== s2.length) {
return false
}
if (s1.length === 1) {
return s1 === s2
}
if (s1.split('').sort().join('') !== s2.split('').sort().join('')) {
return false
}
for (let i = 0; i < s1.length - 1; i++) {
if (isScramble(s1.slice(0, i + 1), s2.slice(0, i + 1)) &&
isScramble(s1.slice(i + 1), s2.slice(i + 1))) {
return true
} else if (isScramble(s1.slice(0, i + 1), s2.slice(s2.length - 1 - i, s2.length)) &&
isScramble(s1.slice(i + 1), s2.slice(0, s2.length - 1 - i))) {
return true
}
}
return false
};
if (process.env.LZS) {
console.log(isScramble('great', 'rgtae'))
console.log(isScramble('123', '312'))
console.log(isScramble('abcd', 'bdac'))
}