leetCode_Minimum Window Substring
来源:互联网 发布:mac 查找文件路径 编辑:程序博客网 时间:2024/06/08 12:35
题意:给定字符串s和t,返回s中包含t所有字符的长度最短的子串
例子:如s="ADOBECODEBANC",t="ABC",返回"BANC";
解法:用letters记录t中每个字符的出现个数,用一个队列记录s中的那些在t出现的下标,用cur记录s中t字符串里的字符出现个数,用count表示满足了t中的多少个字符。也就是说,若s[i]在t出现,并且cur[s[i]]<letters[s[i]]表示有效,count++。如果count与t的长度相等,表示全部字符已经出现一遍,下面只要从queue的下一个元素开始往复。说的很乱,看代码吧。
string minWindow(string s, string t){ int i,j,k,count=0,start,end; vector<int> letters(128,0); vector<int> cur(128,0); queue<int> index; start=-1; end=s.length()+1; for(i=0; i<t.length(); i++) letters[t[i]]++; for(i=0; i<s.length(); i++) { if(letters[s[i]]>0) { index.push(i); cur[s[i]]++; if(cur[s[i]]<=letters[s[i]]) { count++; while(count==t.length()) { if(i-index.front()<end-start) { end=i; start=index.front(); } cur[s[index.front()]]--; if(cur[s[index.front()]]<letters[s[index.front()]]) count--; index.pop(); } } } } if(start==-1) return ""; return s.substr(start,end-start+1);;}
0 0
- leetCode_Minimum Window Substring
- Leetcode_minimum-window-substring(c++ version)
- LeetCode: Minimum Window Substring
- LeetCode Minimum Window Substring
- LeetCode : Minimum Window Substring
- [LeetCode] Minimum Window Substring
- [Leetcode] Minimum Window Substring
- Minimum Window Substring
- LeetCode: Minimum Window Substring
- Minimum Window Substring
- [LeetCode]Minimum Window Substring
- Minimum Window Substring
- Minimum Window Substring
- [leetcode]Minimum Window Substring
- Minimum Window Substring
- Leetcode:Minimum Window Substring
- LeetCode-Minimum Window Substring
- [leetcode] Minimum Window Substring
- 最小割总结
- VI 编辑器
- Android mediaplayer 播放本地音乐文件
- JSON 解析遇到的坑
- iOS--错误集锦--svn提交出错 an error occurred and the operation could not be completed
- leetCode_Minimum Window Substring
- html img Src base64 图片显示
- Common motion planning algorithms 常用机器人运动规划算法
- 输出逆序数
- LeetCode135—Candy
- 自己挖的坑,跪着也填完
- 关于扫描二维码拒绝获取摄像头权限导致的错误解决方法
- ceilometer+gnocchi+influxdb
- AsyncTask加载之图片下载(2)