LeetCode 20200219(最小覆盖子串 未完成)

1.最小覆盖子串
这个代码没有看懂 待议

只知道是使用哈希表来解决
把要求的字母都放在哈希表中
然后循环这个原字符串 如果哈希表中有 就将它count++;
当有效数字的计数count够了的时候 就开始检查

class Solution {
public:
    string minWindow(string s, string t) {
        string ans="";
        map<char,int> lettercount;
        for(char c:t) ++lettercount[c];
        int count=0,left=0,minlen=INT_MAX;
        for(int i=0;i<s.size();++i)
        {
            if(--lettercount[s[i]]>=0) ++count;
            while(count==t.size())
            {
                if(minlen>i-left+1)
                {
                    minlen=i-left+1;
                    ans=s.substr(left,minlen);
                }
                if(++lettercount[s[left]]>0) --count;
                ++left;
            }
        }
        return ans;
        
    }
};

发布了60 篇原创文章 · 获赞 9 · 访问量 3957

猜你喜欢

转载自blog.csdn.net/puying1/article/details/104412638