小蓝有一个字符串 ss,他特别喜欢由以下三个字符组成的单词:l,q,bl,q,b,任意顺序都可以,一共有 66 种可能:lqblqb、lbqlbq、qlbqlb、qblqbl、blqblq、bqlbql。
现在他想从 ss 中,尽可能切割出多个他喜欢的单词,请问最多能切割出多少个?单词指的是由若干个连续的字符组成的子字符串。
输入一行包含一个字符串 ss。
输出一行包含一个整数表示答案。
lqbblqblqlxqb
样例输出
3
对于固定长度的不重叠区间选择问题,从左到右尽早选择有效子串的贪心策略可以得到全局最优解。
import os
import sys
# 请在此输入您的代码
#读取字符串
#截取窗口
#判断是否,是则跳窗口,不是依次往后
s=input().strip()
n=len(s)
count=0
v_chars={'l','b','q'}
i=0
while i<=n-3:
windous=s[i:i+3]
if set(windous)==v_chars:
i=i+3
count=count+1
else:
i=i+1
print(count)