Skip to content

Commit eef8ccc

Browse files
committed
solve TLE by using [][]
1 parent 5d07a23 commit eef8ccc

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

scramble-string.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,42 @@ var DEBUG = process.env.DEBUG;
77
*/
88
var isScramble = function(s1, s2) {
99
var m = {};
10+
function set(s, t, v) {
11+
m[s] = m[s] || {};
12+
m[s][t] = v;
13+
return v;
14+
}
15+
function get(s, t) {
16+
if (m[s] === undefined) return m[s];
17+
else return m[s][t];
18+
}
1019
function f(s, t) {
11-
if (m[[s, t]] !== undefined) return m[s, t];
12-
if (s === t) return m[[s, t]] = true;
20+
var v;
21+
if ((v = get(s, t)) !== undefined) return v;
22+
if (s === t) return set(s, t, true);
1323
for (var i = 1; i < s.length; i++) {
1424
if (f(s.substr(0, i), t.substr(-i)) &&
1525
f(s.substr(i), t.substr(0, t.length-i)))
16-
return m[[s,t]] = true;
26+
return set(s,t,true);
1727
if (f(s.substr(0, i), t.substr(0, i)) &&
1828
f(s.substr(i), t.substr(i)))
19-
return m[[s,t]] = true;
29+
return set(s,t,true);
2030
}
21-
return m[[s,t]] = false;
31+
return set(s,t,false);
2232
}
2333
return f(s1, s2);
2434
};
2535

2636
function test(f) {
27-
2837
[
2938
["great", "great"],
3039
["great", "eatgr"],
3140
["great", "rgeat"],
3241
["great", "rgtae"],
3342
["great", "rtgea"],
3443
["dsanujiiqwfsysnfsrwbrfhhpqicbw", "dabbciwqphhfrwrsfnsysfwqiijuns"],
44+
["pcighfdjnbwfkohtklrecxnooxyipj", "npodkfchrfpxliocgtnykhxwjbojie"],
45+
["iydzdwbqbfixognqhbmimhwyhmdnrm", "nmbywdbnmmfybqqighdriizmxdhwho"],
3546
].forEach(function (input) {
3647
console.log(f.apply(undefined, input));
3748
});

0 commit comments

Comments
 (0)