leetcode 97. 交错字符串
https://leetcode-cn.com/problems/interleaving-string/
class Solution(object):
def isInterleave(self, s1, s2, s3):
"""
:type s1: str
:type s2: str
:type s3: str
:rtype: bool
"""
lens1=len(s1)
lens2=len(s2)
lens3=len(s3)
if lens1+lens2!=lens3:
return False
if lens1==0:
if s2==s3:
return True
else:
return False
if lens2==0:
if s1==s3:
return True
else:
return False
dp=[[False for j in range(lens2+1)]for i in range(lens1+1)]
dp[0][0]=True
for i in range(1,lens1+1):
dp[i][0]=(dp[i-1][0] and s1[i-1]==s3[i-1])
for j in range(1,lens2+1):
dp[0][j]=(dp[0][j-1] and s2[j-1]==s3[j-1])
for i in range(1,lens1+1):
for j in range(1,lens2+1):
dp[i][j]=(dp[i][j-1] and s2[j-1]==s3[i+j-1]) or (dp[i-1][j] and s1[i-1]==s3[i+j-1])
return dp[-1][-1]