zoukankan      html  css  js  c++  java
  • [LeetCode]题解(python):087-Scramble String

    题目来源:

      https://leetcode.com/problems/scramble-string/


    题意分析:

      给定一个字符串,字符串展成一个二叉树,如果二叉树某个或多个左右子树颠倒得到的新字符串称为scramble。给两个字符串,判断是否互为scramble。


    题目思路:

      这是一个动态规划问题,把其中字符拆成两部分,如果这两部分满足是scramble,那么整个字符串就满足scramble。


    代码(python):

      

    class Solution(object):
        def isScramble(self, s1, s2):
            """
            :type s1: str
            :type s2: str
            :rtype: bool
            """
            if len(s1) != len(s2):
                return False
            if s1 == s2:
                return True
            tmp1,tmp2 = list(s1),list(s2)
            tmp1.sort();tmp2.sort()
            if tmp1 != tmp2:
                return False
            size = len(s1)
            for i in range(1,size):
                if self.isScramble(s1[i:],s2[i:]) and self.isScramble(s1[:i],s2[:i]):
                    return True
                if self.isScramble(s1[i:],s2[:size - i]) and self.isScramble(s1[:i],s2[size - i:]):
                    return True
            return False
    View Code
  • 相关阅读:
    python-scapy学习笔记-(1)
    python系统性能模块笔记
    Python爬虫总结
    pm2的的常用命令及用法
    Javascript的map与forEach的区别
    对MVVM思想的在认识
    RN的打包
    undefined与null的区别
    rem与em的区别
    JS的函数参数传递为值传递
  • 原文地址:https://www.cnblogs.com/chruny/p/5214315.html
Copyright © 2011-2022 走看看