最小覆盖子串

题目链接

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;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
01-19 12:48
门头沟学院 C++
只想搞钱的鸽子很喜欢...:混账是很多的,还有那些在自己风华正茂的年纪说风凉话讥讽那些下岗前员工的。这些人都是现在职场环境这么烂的帮凶
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务