美文网首页
python实现leetcode之97. 交错字符串

python实现leetcode之97. 交错字符串

作者: 深圳都这么冷 | 来源:发表于2021-09-22 00:16 被阅读0次

解题思路

启发式的思考,考虑全面就行了,没有什么好说的
添加缓存为了避免重复计算

97. 交错字符串

代码

CACHE = {}
class Solution:
    def isInterleave(self, s1: str, s2: str, s3: str) -> bool:
        if len(s1) + len(s2) != len(s3): return False
        if not s1: return s2 == s3
        if not s2: return s1 == s3

        key = (s1, s2, s3)
        if key not in CACHE:
            if s1[0] != s3[0] and s2[0] != s3[0]: CACHE[key] = False
            elif s1[0] != s3[0]: CACHE[key] = self.isInterleave(s1, s2[1:], s3[1:])
            elif s2[0] != s3[0]: CACHE[key] = self.isInterleave(s1[1:], s2, s3[1:])
            else:
                CACHE[key] = self.isInterleave(s1, s2[1:], s3[1:]) or self.isInterleave(s1[1:], s2, s3[1:])
        return CACHE[key]
效果图

相关文章

网友评论

      本文标题:python实现leetcode之97. 交错字符串

      本文链接:https://www.haomeiwen.com/subject/gshmgltx.html