class Solution(object):
def isScramble(self, s1, s2):
"""
:type s1: str
:type s2: str
:rtype: bool
"""
Len1=len(s1)
Len2=len(s2)
if Len1!=Len2:return False
if s1==s2:return True
if Len1==1:return s1==s2
if sorted(s1)!=sorted(s2):return False
for i in range(1,Len1):
Lenleft=i
Lenright=Len1-Lenleft
#print s1[:Lenleft],s2[Lenright:],s1[Lenleft:],s2[:Lenright]
if self.isScramble(s1[:Lenleft],s2[Lenright:]) and self.isScramble(s1[Lenleft:],s2[:Lenright]):
return True
if self.isScramble(s1[:Lenleft],s2[:Lenleft]) and self.isScramble(s1[Lenleft:],s2[Lenleft:]):
return True
return False
LeetCode-87-Scramble String DFS+剪枝
最新推荐文章于 2019-05-11 02:10:39 发布