76. Minimum Window Substring

  • 大多数寻找子字符串的问题都可以通过HashMap and two pointer 解决
  • 超时方案

public String minWindow(String s, String t) {
int max = s.length();
String result = "";
for(int i=0;i<s.length()-t.length()+1;i++){
for(int j = i+t.length();j<=s.length();j++){
if(cont(s.substring(i,j), t) ) {
if(j-i < max ){
max = j-i;
result = s.substring(i,j);
}
}

}
}
if(max == s.length()){
if(cont(s,t)) return s;
return "";
}
return result;

}

public boolean cont(String s, String t){
int[] map = new int[256];
int count = t.length();
for(int i=0;i<t.length();i++){
map[t.charAt(i) - 'A']++;
}


for(int i=0;i<s.length();i++){
if(map[s.charAt(i) - 'A'] > 0){
map[s.charAt(i) - 'A']--;
count--;
}

}

return count == 0;
}

 

posted @ 2017-01-19 01:40  EnoWang  阅读(62)  评论(0)    收藏  举报