File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ string minWindow (string s, string t) {
4
+ unordered_map<char , int > t_map;
5
+ unordered_map<char , int > window;
6
+ int need = 0 , match = 0 ;
7
+ int min_len = INT_MAX;
8
+ int min_low = 0 ;
9
+ int l = 0 ;
10
+
11
+ for (char ch : t){
12
+ if (t_map[ch] == 0 )
13
+ need++;
14
+
15
+ t_map[ch]++;
16
+ }
17
+
18
+ for (int h = 0 ; h < s.length (); h++){
19
+ window[s[h]]++;
20
+
21
+ if (window[s[h]] == t_map[s[h]])
22
+ match++;
23
+
24
+ while (need == match){
25
+ if (h - l + 1 < min_len){
26
+ min_len = h - l + 1 ;
27
+ min_low = l;
28
+ }
29
+
30
+ window[s[l]]--;
31
+
32
+ if (window[s[l]] < t_map[s[l]])
33
+ match--;
34
+
35
+ l++;
36
+ }
37
+ }
38
+
39
+ if (min_len == INT_MAX)
40
+ return " " ;
41
+
42
+ return s.substr (min_low, min_len);
43
+ }
44
+ };
You can’t perform that action at this time.
0 commit comments