leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0076.cpp (732B)


0 class Solution { 1 public: 2 string minWindow(string s, string t) { 3 vector<int> remaining(128, 0); 4 for (char c : t) 5 remaining[c]++; 6 7 int required = t.size(); 8 int min = INT_MAX, start = 0, left = 0, i = 0; 9 while (i <= s.size() && start < s.size()) { 10 if (required) { 11 if (i == s.size()) break; 12 if (--remaining[s[i++]] >= 0) required--; 13 } else { 14 if (i - start < min) { 15 min = i - start; 16 left = start; 17 } 18 if (++remaining[s[start++]] > 0) required++; 19 } 20 } 21 return min == INT_MAX ? "" : s.substr(left, min); 22 } 23 };