适用情景:字符串或数组的子串或子数组
模板
def slidingWindow(s, t):
need = {} # 存储字符串 t 中各个字符的需求量
window = {} # 存储滑动窗口中各个字符的出现次数
for c in t: # 遍历字符串t
need.setdefault(c, 0) # 访问不存在的键时自动创建并将值设置为 0
need[c] += 1 # 统计字符串 t 中各个字符的需求量
left = 0 # 滑动窗口的左指针
right = 0 # 滑动窗口的右指针
valid = 0 # 记录满足需求的字符数
while right < len(s):
c = s[right]#c 是将移入窗口的字符
right += 1#右移窗口
# 进行窗口内数据的一系列更新
#......
# debug 输出的位置
# print("window: [{}, {})".format(left, right))
# 判断左侧窗口是否要收缩
while (window needs shrink):
d = s[left]#d 是将移出窗口的字符
left += 1#左移窗口
# 进行窗口内数据的一系列更新
#......
标签:字符,right,窗口,need,滑动,模板,left
From: https://www.cnblogs.com/lushuang55/p/18067017