滑动窗口是一种常用的字符串处理方法。它的主要思想是在字符串上移动一个固定长度的窗口,并对窗口内的字符串进行操作。
下面是一个滑动窗口的实现方法:
- 定义窗口的左右边界 left 和 right。
- 在字符串上移动窗口,即将 left 和 right 同时加 1。
- 在窗口内进行需要的操作。
- 重复步骤 2 和 3,直到窗口移动到字符串的末尾。
下面是一个滑动窗口的例子,它统计字符串中有多少个长度为 $k$ 的子串是回文串:
def count_palindrome_substrings(s: str,k: int) -> int:
left, right = 0, k - 1
count = 0
while right < len(s):
# 判断窗口内的字符串是否是回文串
if s[left:right+1] == s[left:right+1][::-1]:
count += 1
left += 1
right += 1
return count
在这个例子中,我们定义了窗口的左右边界 left 和 right,然后在字符串上移动窗口,并判断窗口内的字符串是否是回文串。最后,我们统计所有满足条件的子串个数。