每日一练上的,运行正常。没看懂,放在这里备份一下
'''
2021.11.17三,jczfc==交错字符串。中等 字符串 动态规划
queue: 行列 长队 辫子。
'''
class Solution(object):
def isInterleave(self,s1,s2,s3):
'''type(s1,s2,s3)==str,return_type==bool'''
if len(s1)+len(s2)!=len(s3):
return False
queue=[(0,0),(-1,-1)]
visited=set()
isSuccess=False
index=0
while len(queue)!=1 or queue[0][0]!=-1:
p=queue.pop(0)
if p[0]==len(s1)and p[1]==len(s2):
return True
if p[0]==-1:
queue.append(p)
index+=1
continue
if p in visited:
continue
visited.add(p)
if p[0]<len(s1):
if s1[p[0]]==s3[index]:
queue.append((p[0]+1,p[1]))
if p[1]<len(s2):
if s2[p[1]]==s3[index]:
queue.append((p[0],p[1]+1))
return False
s=Solution()
print(s.isInterleave(s1='aabcc',s2='dbbca',s3='aadbbcbcac'))
print(s.isInterleave(s1='aabcc',s2='dbbca',s3='aadbbbaccc'))
print(s.isInterleave(s1='',s2='',s3=''))