[Leetcode]87. Scramble String
[Leetcode]87.?Scramble String
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 For example,if we choose the node?"gr"?and swap its two children,it produces a scrambled string?"rgeat". rgeat / rg eat Similarly,if we continue to swap the children of nodes?"eat"?and?"at",it produces a scrambled string?"rgtae". rgtae / rg tae Given two strings?s1?and?s2?of the same length,determine if?s2?is a scrambled string of?s1. Example 1: Input: s1 = "great",s2 = "rgeat" Input: s1 = "abcde",s2 = "caebd" 我的代码?class Solution: ? ?? ? ? def isScramble(self,s1: str,s2: str) -> bool: ? ? ? ? l = len(s1) ? ? ? ? if l!=len(s2): ? ? ? ? ? ? return False ? ? ? ? if s1 == s2: ? ? ? ? ? ? return True ? ? ? ? if sorted(s1)!=sorted(s2): ? ? ? ? ? ? return False ? ? ? ? for i in range(1,l): ? ? ? ? ? ? if (self.isScramble(s1[:i],s2[:i]) and self.isScramble(s1[i:],s2[i:])) or (self.isScramble(s1[:i],s2[-i:]) and self.isScramble(s1[i:],s2[:-i])): ? ? ? ? ? ? ? ? return True ? ? ? ? return False (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |