public static int minLengthSubstring(String s, String t) {
int min = Integer.MAX_VALUE;
boolean found = false;
for (int i = 0; i <= s.length(); i++) {
for (int j = i; j <= s.length(); j++) {
String takedString = s.substring(i, j);
boolean contained = true;
HashMap<Character, Integer> h = new HashMap<Character, Integer>();
for (Character c : t.toCharArray()) {
h.put(c, h.getOrDefault(c, 0) + 1);
}
for (Character c : takedString.toCharArray()) {
h.put(c, h.getOrDefault(c, 0) - 1);
}
for (Character c : h.keySet()) {
if (h.get(c) > 0)
contained = false;
}
if (contained) {
found = true;
min = Integer.min(min, takedString.length());
}
}
}
if (!found)
return -1;
return min;
}
Like this:
Like Loading...
Related