LeetCode 727. 最小窗口子序列(滑动窗口)python版本
题:
给定字符串 S and T,找出 S 中最短的(连续)子串 W ,使得 T 是 W 的 子序列 。
如果 S 中没有窗口可以包含 T 中的所有字符,返回空字符串 “”。
如果有不止一个最短长度的窗口,返回开始位置最靠左的那个。
示例:
输入:S = “abcdebdde”, T = “bde”
输出:“bcde”
解释:
“bcde” 是答案,因为它在相同长度的字符串 “bdde” 出现之前。
“deb” 不是一个更短的答案,因为在窗口中必须按顺序出现 T 中的元素。
"""代码如下所示"""
class Solution:
def minlen(self,s,t):
def iscontain(s,t):
i=0
j=0
while i<len(s):
if s[i]==t[j]:
j+=1
if j==len(t):
return True
i+=1
return False
ans=s+s
l=0
while l<len(s):
for r in range(len(s)):
if iscontain(s[l:r+1],t):
if len(ans)>r+1-l:
ans=s[l:r+1]
l+=1
return ans
if __name__=="__main__":
c=Solution()
s="abcdebdde"
t="bde"
print(c.minlen(s,t))