LeetCode Minimum Window Substring
2014-05-26 20:58
323 查看
题目:
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 =
T =
Minimum window is
Note:
If there is no such window in S that covers all characters in T, return the emtpy string
If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S.
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 emtpy string
"".
If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S.
class Solution { public: //使用首尾指针,复杂度为O(n) string minWindow(string S, string T) { if (S.size() == 0 || T.size() == 0) return ""; int n = T.size(); int minS = INT_MAX; int xx; int tt1[256] = { 0 }; int ss[256] = { 0 }; for (int i = 0; i < n; i++) tt1[T[i]]++; int end = 0; int cnt = 0; for (int beg = 0; beg < S.size(); beg++) { while (end < S.size()) { if (cnt == n) break; if (tt1[S[end]] > 0) { ss[S[end]]++; if (ss[S[end]] <= tt1[S[end]]) { cnt++; } } if (cnt == n) break; end++; } //没有再符合条件的了!! if (end == S.size()) break; if (end - beg + 1 < minS) { minS = end - beg + 1; xx = beg; } if (tt1[S[beg]] > 0) { ss[S[beg]]--; if (ss[S[beg]] < tt1[S[beg]]) cnt--; } if (cnt != n) end++; } if (minS == INT_MAX) return ""; string ans(S, xx, minS); return ans; } };
相关文章推荐
- Leetcode Minimum Window Substring
- [Leetcode] Minimum Window Substring
- LeetCode76 Minimum Window Substring(两种解法)
- LeetCode 76 Minimum Window Substring
- Leetcode -- Minimum Window Substring
- leetcode 76: Minimum Window Substring
- [LeetCode] Minimum Window Substring
- LeetCode(76) Minimum Window Substring
- LeetCode 76 minimum window substring
- (细节题)[LeetCode]Minimum Window Substring
- [LeetCode] Minimum Window Substring -- python
- 【Leetcode】Minimum Window Substring
- LeetCode-Minimum Window Substring
- leetcode---minimum-window-substring---贪心
- LeetCode--Minimum Window Substring
- Leetcode231: Minimum Window Substring
- LeetCode-Minimum Window Substring
- LeetCode:Minimum Window Substring
- [Leetcode] minimum window substring 最小字符窗口
- LeetCode76 Minimum Window Substring(两种解法)