import java.util.*;
public class Solution {
/**
*
* @param S string字符串
* @param T string字符串
* @return string字符串
*/
public String minWindow (String S, String T) {
// write code here
int len = S.length() + 1;
int[] hash = new int[128];
for(int i = 0; i < T.length(); i++){
hash[T.charAt(i)]--;
}
int left = -1;
int right = -1;
int slow = 0;
int fast = 0;
for(; fast < S.length(); fast++){
char c = S.charAt(fast);
hash[c]++;
while(check(hash)){
if(len > fast - slow + 1){
len = fast - slow + 1;
left = slow;
right = fast;
}
c = S.charAt(slow);
hash[c]--;
slow++;
}
}
if(left == -1)
return "";
return S.substring(left, right + 1);
}
boolean check(int[] hash) {
for (int i = 0; i < hash.length; i++) {
if (hash[i] < 0)
return false;
}
return true;
};
}
牛客-TOP101-BM90
最新推荐文章于 2024-07-24 14:54:00 发布