题解 | #牛群名字覆盖#

牛群名字覆盖

https://www.nowcoder.com/practice/e6cef4702e7841f59cf47daf9bafb241

#include <climits>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @param t string字符串 
     * @return string字符串
     */
    bool judge(map<char,int> t, map<char,int> s)\
    {
        for(auto it=t.begin(); it!=t.end(); ++it)
        {
            if(it->second>s[it->first])
                return false;
        }

        return true;
    }

    string minWindow(string s, string t) {
        // write code here

        map<char,int> t_s, t_t;

        for(auto ch:t)
            ++t_t[ch];

        int min_len = INT_MAX;
        int left=0, right=0;
        int len = s.size();
        int start = 0;
        
        while(right<len)
        {
            if(t_t[s[right]]>0)
            {
                ++t_s[s[right]];
            }
            ++right;
            while(judge(t_t, t_s))
            {
                if(right-left+1<min_len)
                {
                    min_len = right-left+1;
                    start = left;
                }

                if(t_t[s[left]])
                    --t_s[s[left]];
                
                ++left;
            }
        }

        return min_len==INT_MAX ? "" : s.substr(start,min_len);
    }
};

虚数五行区解题中心 文章被收录于专栏

非淡泊无以明志,非宁静无以致远

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:21
被夸真的超级开心,好可爱的姐姐
码农索隆:老色批们不用脑补了,我把金智妮的图找来了查看图片
点赞 评论 收藏
分享
05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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