public class Solution {
public String minWindow(String s, String t) {
if (s == null || s.length() == 0 || t == null) {
return "";
}
if (t.length() == 0) {
return s;
}
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < t.length(); i++) {
char c = t.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
int count = 0, prev = 0, minLen = s.length() + 1;
String res = "";
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) - 1);
if (map.get(c) >= 0) {
count++;
}
while (count == t.length()) {
char k = s.charAt(prev);
if (map.containsKey(k)) {
map.put(k, map.get(k) + 1);
if (map.get(k) > 0) {
int len = i - prev + 1;
if (len < minLen) {
minLen = len;
res = s.substring(prev, i + 1);
}
count--;
}
}
prev++;
}
}
}
return res;
}
}
Minimum Window Substring
最新推荐文章于 2021-12-02 12:51:45 发布