2021.11.17三,交错字符串。中等 字符串 动态规划

每日一练上的,运行正常。没看懂,放在这里备份一下

'''
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=''))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值