解题思路
easy
代码
class MagicDictionary {
Set<String> set;
public MagicDictionary() {
set = new HashSet<>();
}
public void buildDict(String[] dictionary) {
for (int i = 0; i < dictionary.length; i++) {
set.add(dictionary[i]);
}
}
public boolean search(String searchWord) {
for (String s : set) {
if (check(searchWord,s)){
return true;
}
}
return false;
}
private boolean check(String a,String b){
if (a.length() != b.length() || a.equals(b)){
return false;
}
char[] charsA = a.toCharArray();
char[] charsB = b.toCharArray();
int dif = 0;
for (int i = 0; i < charsA.length; i++) {
if (charsA[i] != charsB[i]){
dif++;
}
if (dif > 1){
return false;
}
}
return true;
}
}
/**
* Your MagicDictionary object will be instantiated and called as such:
* MagicDictionary obj = new MagicDictionary();
* obj.buildDict(dictionary);
* boolean param_2 = obj.search(searchWord);
*/