76. Minimum Window Substring
来源:互联网 发布:华为网络管理系统 编辑:程序博客网 时间:2024/06/16 12:20
这道题给出两个字符串s和t,求s中包含t中所有字母的最小的窗。
- 我们最开始先扫描一遍T,把对应的字符及其出现的次数存到哈希表中。
- 然后开始遍历S,遇到T中的字符,就把对应的哈希表中的value减一,直到包含了T中的所有的字符,纪录一个字串并更新最小字串值。
- 将子窗口的左边界向右移,直到没能包含t中所有字符,然后往右移动右边界。移动左边界的时候略掉不在T中的字符,如果某个在T中的字符出现的次数大于哈希表中的value,则也可以跳过该字符。
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; unordered_map<char, int> m; for(int i = 0; i < t.size(); ++i){ ++m[t[i]]; } for(int right = 0; right < s.size(); ++right){ if(m.find(s[right]) != m.end()){ --m[s[right]]; if(m[s[right]] >= 0) ++count; while(count == t.size()){ if(right - left + 1 < minLen){ minLen = right - left + 1; res = s.substr(left, minLen); } if(m.find(s[left]) != m.end()){ m[s[left]]++; if(m[s[left]] > 0) count--; } left++; } } } return res; }};
阅读全文
0 0
- 76. Minimum Window Substring
- 76.Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 76. Minimum Window Substring
- 二分搜索
- 访问者模式学习和思考
- 动态规划--机器分配
- 红黑瓷砖
- 输入N阶方阵求其各行各列的和
- 76. Minimum Window Substring
- 【算法分析与设计】【第八周】712. Minimum ASCII Delete Sum for Two Strings
- Lintcode-动态规划-不同路径二
- 设置单文档CListView视图中列表的行高
- 57. Insert Interval
- 《深入理解Java虚拟机》——字节码指令简介
- 深度学习目标检测最全最新的方法paper和代码
- Java过滤器和SpringMVC拦截器之间的关系与区别
- 在CentOS 7上安装RabbitMQ服务器