Copy class WordFilter {
Map<String, Integer> map;
public WordFilter(String[] words) {
map = new HashMap<>();
for (int i = 0; i < words.length; i++) {
String curWord = words[i];
List<String> prefix = new ArrayList<>();
List<String> suffix = new ArrayList<>();
for (int j = 0; j <= curWord.length(); j++) {
prefix.add(curWord.substring(0, j));
}
for (int k = curWord.length(); k >= 0; k--) {
suffix.add(curWord.substring(k));
}
for (String p : prefix) {
for (String s : suffix) {
String key = p + "#" + s;
if (!map.containsKey(key)) {
map.put(key, i);
}
else {
map.put(key, Math.max(map.get(key), i));
}
}
}
}
}
public int f(String prefix, String suffix) {
return map.containsKey(prefix + "#" + suffix) ? map.get(prefix + "#" + suffix) : -1;
}
}
/**
* Your WordFilter object will be instantiated and called as such:
* WordFilter obj = new WordFilter(words);
* int param_1 = obj.f(prefix,suffix);
*/