NC28 最小覆盖子串 滑动窗口的思想
这道题目用到了滑动窗口这一大杀器,它可以解决如下问题:
最小覆盖子串(LeetCode76)
字符串排列(LeetCode567)
统计字母异位词(LeetCode438)
最长无重复子串(LeetCode3)
滑动窗口的基本思想:
用两个字典分别维护窗口中字符的统计数量、以及被求解子串中字符的统计数量
用双指针遍历主字符串,双指针的初始值均为0,窗口的范围是[left, right)(左闭右开)
遍历过程中,不断增大、缩小窗口,并更新状态
class Solution {
public:
map<char,int> window,mp;
string minWindow(string S, string T) {
string s=S,t=T;
for(int i=0;i<t