滑动窗口
public static String minWindow(String s, String t) {
if (s==null||t==null||s.length()<t.length()) return "";
char[] sArr=s.toCharArray();
char[] tArr=t.toCharArray();
int[] hash=new int[128];
for (char c:tArr) hash[c]++;
int l=0,count=t.length(),max=s.length()+1;
String result="";
for (int r=0;r<sArr.length;r++){
hash[sArr[r]]--;
if (hash[sArr[r]]>=0){
count--;
}
while (r>l&&hash[sArr[l]]<0){
hash[sArr[l]]++;
l++;
}
if (count==0&&max>r-l+1){
max=r-l+1;
result=s.substring(l,r+1);
}
}return result;
}