DFS is the right tool for this problem.
Solution:
# T:O(n^4) S:O(n^3)
class Solution:
# @return a boolean
def isScramble(self, s1, s2):
if len(s1)!=len(s2): return False
if s1==s2: return True
l1, l2=list(s1), list(s2)
l1.sort()
l2.sort()
if l1!=l2: return False
length=len(s1)
for i in range(1,length):
if self.isScramble(s1[:i],s2[:i]) and\
self.isScramble(s1[i:],s2[i:]): return True
if self.isScramble(s1[:i],s2[length-i:]) and\
self.isScramble(s1[i:],s2[:length-i]): return True
return False
Run Time: 84 ms
No comments:
Post a Comment