设计一个使用单词列表进行初始化的数据结构,单词列表中的单词 互不相同 。 如果给出一个单词,请判定能否只将这个单词中一个字母换成另一个字母,使得所形成的新单词存在于你构建的字典中。 实现 MagicDictionary 类: MagicDictionary() 初始化对象 void buildDict(String[] dictionary) 使用字符串数组 dictionary 设定该数据结构,dictionary 中的字符串互不相同 bool search(String searchWord) 给定一个字符串 searchWord ,判定能否只将字符串中 一个 字母换成另一个字母,使得所形成的新字符串能够与字典中的任一字符串匹配。如果可以,返回 true ;否则,返回 false 。 输入 ["MagicDictionary", "buildDict", "search", "search", "search", "search"] [[], [["hello", "leetcode"]], ["hello"], ["hhllo"], ["hell"], ["leetcoded"]] 输出 [null, null, false, true, false, false]
class MagicDictionary {
String [] res;
public MagicDictionary() {
}
public void buildDict(String[] dictionary) {
res=new String[dictionary.length];
for(int i=0;i<dictionary.length;i++){
res[i]=dictionary[i];
}
}
public boolean search(String searchWord) {
for(String s:res){
if(isSimilar(s,searchWord)){
return true;
}
}
return false;
}
public boolean isSimilar(String s,String target){
int count=0;
if(s.length()!=target.length()){
return false;
}
for(int i=0;i<s.length();i++){
if(s.charAt(i)!=target.charAt(i)){
count++;
}
}
//必须有一个字符不同 才是魔法字符
return count==1?true:false;
}
}