leetcode Scramble String某个测试用例就是通不过

发布于 2022-09-01 21:47:22 字数 1593 浏览 7 评论 0

class Solution(object):
    isReverse = False
    def isScramble(self, s1, s2):
        """
        :type s1: str
        :type s2: str
        :rtype: bool
        """
        if len(s1) < 3:
            return (s1 == s2) or (s1 == s2[::-1])
        # 整体翻转s2字符串
        if self.isReverse is False:
            self.isReverse = True
            if self.isScramble(s1, s2[::-1]):
                return True
        # 二叉树的最左子树为1的情况
        if self.isScramble(s1[0], s2[0]):
            if self.isScramble(s1[1:], s2[1:]):
                return True
            if self.isScramble(s1[1:], s2[1:][::-1]):
                return True
        # 二叉树最右子树为1
        if self.isScramble(s1[-1], s2[-1]):
            if self.isScramble(s1[:-1], s2[:-1]):
                return True
            if self.isScramble(s1[:-1], s2[:-1][::-1]):
                return True
        # 二叉树最右子树为2
        if self.isScramble(s1[-2:], s2[-2:]):
            if self.isScramble(s1[:-2], s2[:-2]):
                return True
            if self.isScramble(s1[:-2], s2[:-2][::-1]):
                return True
         # 二叉树最左子树为2
        if self.isScramble(s1[:2], s2[:2]):
            if self.isScramble(s1[2:], s2[2:]):
                return True
            if self.isScramble(s1[2:], s2[2:][::-1]):
                return True
        return False
Input:
"vfldiodffghyq"
"vdgyhfqfdliof"

MyOutput:false
ExceptedOutput:true 

原题链接:https://leetcode.com/problems/scramble-string/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉风有信 2022-09-08 21:47:22

实际编程的时候没有人帮你调试。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文