题目链接

https://leetcode-cn.com/problems/minimum-window-substring/submissions/

解题思路

大佬讲解
思路不难理解,真正难的是实现和代码理解。

AC代码

class Solution {
public:
    string minWindow(string s, string t) {
        string ans;
        map<char,int> ttt;
        int n=s.size(),m=t.si***len=0x3f3f3f3f,cnt=0;
        s='.'+s;t='.'+t;
        for(int k=1;k<=m;k++) ++ttt[t[k]];

        int i=1;
        for(int j=1;j<=n;j++){
            if(--ttt[s[j]]>=0) ++cnt;//核心
            while(cnt==m){
                if(j-i+1<minlen){
                    minlen=j-i+1;
                    ans=s.substr(i,minlen);
                }
                if(++ttt[s[i]]>0) --cnt;//核心
                ++i;
            }
        }
        return ans;
    }
};