LeetCode--Minimum Window Substring

来源:互联网 发布:淘宝号可以不实名认证 编辑:程序博客网 时间:2024/06/04 19:07

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).

For example,
S = “ADOBECODEBANC”
T = “ABC”
Minimum window is “BANC”.

Note:
If there is no such window in S that covers all characters in T, return the empty string “”.

If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S.

思路:哈希表法。这里用两个数组tm和sm代替哈希表,首先统计T中每个字母的个数(可能一个字母有多个),然后开始滑动窗口,左端点起点为0,遍历右端点,如果遇到S中有T中的字母且个数不超过T中该字母的个数,则计数加1,直到计数达到T中字母个数,即S中窗口包含T为止,如果该窗口小于最小窗口长度,则更新最小窗口,同时左端点前移,如果左端点包含T中字母,则减去一个S中该字母的个数,若此时所需T中该字母个数不够,则计数减1,继续前移右窗口,滑动窗口直到结束。

class Solution {public:    string minWindow(string S, string T) {        if (T.size()>S.size()) return "";        string res="";        int left=0,count=0,minLen=S.size()+1;        int tm[256]={0},sm[256]={0};        for(int i=0;i<T.size();i++) tm[T[i]]++;        for(int right=0;right<S.size();right++){            if(tm[S[right]]){                sm[S[right]]++;                if(sm[S[right]]<=tm[S[right]]) count++;                while(count==T.size()){                    if(right-left+1<minLen){                        minLen=right-left+1;                        res=S.substr(left,minLen);                    }                    if(tm[S[left]]){                        sm[S[left]]--;                        if(sm[S[left]]<tm[S[left]]) count--;                    }                    left++;                }            }        }        return res;    }};
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 幼儿园中班不会写字怎么办 胃难受吐了怎么办 小孩不肯学写字怎么办 孩子不爱穿内裤怎么办 孩子长期不吃肉怎么办 小孩子不吃肉怎么办呢? 一年级小孩写字慢怎么办 听障碍放弃了怎么办 宝宝开始写字该怎么办 恢复的文档乱码怎么办 小孩做作业磨蹭怎么办 宝宝用左手写字怎么办 小孩动作太慢怎么办 幼儿园不去上学怎么办 嫌弃婆婆带孩子怎么办 孩子写字特别慢怎么办 幼儿园孩子不愿写字怎么办 孩子不愿用力写字怎么办 老公得了懒癌怎么办 太懒不想上班怎么办 写字太多手臂痛怎么办 小孩读书务工证怎么办 一年级孩子撕书怎么办 孩子上幼儿园不适应怎么办 一年级没办学籍怎么办 宝宝不爱做作业怎么办 儿子不爱做作业怎么办 我不想去上学怎么办 孩子写字爱玩怎么办 孩子不爱学习写字怎么办 孩子不爱学习成绩差怎么办 小孩默生字很差怎么办 孩子默写不出来怎么办 孩子不好好写字怎么办 大孩子书写差怎么办 孩子不愿意去学校怎么办 幼儿园不去了怎么办 小孩不喜欢吃菜怎么办 孩子不喜欢吃菜怎么办 13小孩不爱读书怎么办 孩子不爱学习的怎么办