题目要求
类型 1: 给定两个字符串 s 和 t,找满足某种变化规律的字串/最大字串/最大字串长度等。
类型 2:给定字符串 s,查找满足某种条件的最大/最小窗口。
解题模板
1 | class Solution: |
模版变形:
- 前后指针同步移动可以简化为一层循环
- exactly(K) = atMost(K) - atMost(K-1)
案例应用
案例 1: Leetcode 424
Medium: Longest Repeating Character Replacement
给定一个字符串 s 和整数 k,求 s 变换 k 次后得到的最长重复子串是多长。其中变换规律是:每次操作可以将一个字符变化成任意字符。重复字符串是指所有字符都相同的字符串。
end
每次滑动要做啥:
累计 s[end] 出现的次数。如果 s[end] 出现次数大于了窗口中最大重复次数,则更新最大重复次数。如果窗口长度大于 k + max_count 则需要移动 begin 指针。
begin
指针移动要做啥:
1 | class Solution: |
案例 2:Max Consecutive Ones III
Medium: https://leetcode.com/problems/max-consecutive-ones-iii/solution/
给定一个只有 0 和 1 的数组 A 和一个操作次数 K,每次操作可以从 0 变成 1,求在 k 次操作下最大子数组的长度。
1 | class Solution: |
案例 3:Grumpy Bookstore Owner
Medium: https://leetcode.com/problems/grumpy-bookstore-owner/
1 | class Solution: |
案例 4: Longest Substring Without Repeating Characters
Medium: https://leetcode.com/problems/longest-substring-without-repeating-characters/
1 | class Solution: |
案例 5: Get Equal Substrings Within Budget
Medium: https://leetcode.com/problems/get-equal-substrings-within-budget/
1 | class Solution: |
案例 6:Permutation in String
Medium: https://leetcode.com/problems/permutation-in-string/
1 | class Solution: |
案例 7: Minimum Window Substring
https://leetcode.com/problems/minimum-window-substring/
1 | class Solution: |