题解 | #最小覆盖子串#
最小覆盖子串
https://www.nowcoder.com/practice/c466d480d20c4c7c9d322d12ca7955ac
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S string字符串 * @param T string字符串 * @return string字符串 */ bool chenck(unordered_map<char, int>& map) { for (auto i : map) { if (i.second > 0) return false; } return true; } string minWindow(string S, string T) { // write code here int l = 0, r = 0; int min_l = -1, min_r = 22222-1; unordered_map<char, int> map; for (char i : T) { map[i]++; } while (r < S.size()) { if (map.find(S[r]) != map.end()) { map[S[r]]--; while (chenck(map)) { if ((r - l + 1) < (min_r - min_l + 1)) { min_l = l; min_r = r; } if (map.find(S[l]) != map.end()) { map[S[l]]++; } ++l; } } ++r; } if (min_l == -1) return ""; return string(S.begin()+min_l,S.begin()+min_r+1); } };
没想到半个小时内写了个困难。。。。。。