676實現一個魔法詞典
7月11日
問題:676實現一個魔法詞典
設計一個使用單詞列表進行初始化的數據結構,單詞列表中的單詞 互不相同 。 如果給出一個單詞,請判定能否只將這個單詞中一個字母換成另一個字母,使得所形成的新單詞存在于你構建的字典中。
實現 MagicDictionary 類:
- MagicDictionary() 初始化對象
- void buildDict(String[] dictionary) 使用字符串數組 dictionary 設定該數據結構,dictionary 中的字符串互不相同
- bool search(String searchWord) 給定一個字符串 searchWord ,判定能否只將字符串中 一個 字母換成另一個字母,使得所形成的新字符串能夠與字典中的任一字符串匹配。如果可以,返回 true ;否則,返回 false 。

我的代碼:
package cn.com.da.lk;
import java.util.Arrays;
import java.util.List;
/**
* @deviceName 97738
* @Author da
* @Date 2022/7/11 8:48
* @QQ 977389678
* @Phone 15932639701
*/
public class MagicDictionary {
List<String> list = null;
String[] ss = null;
public MagicDictionary() {
}
public void buildDict(String[] dictionary) {
ss = dictionary;
// if (list==null)
// {
// list = new ArrayList<String>();
// }
// list.clear();
// list.add(dictionary[0]);
// for (String a : dictionary)
// {
// list.add(a);
// }
}
public boolean search(String searchWord) {
if (searchWord == null) {
return false;
}
boolean flag = false;
for (int i = 0; flag == false && i < ss.length; ) {
String l = ss[i];
if (l.length() == searchWord.length()) {
int num = 0;
for (int j = 0; j < l.length(); j++) {
if (l.charAt(j) == searchWord.charAt(j))
{}
else {
num = num + 1;
}
}
if (num == 1) {
return true;
}
} else {
i++;
}
}
return flag;
// if (searchWord ==null)
// {
// return false;
// }
// boolean flag = false;
// int size = list.size();
// for (int i =0 ;flag==false&&i<size;)
// {
// String l = list.get(i);
// if (l.length()==searchWord.length())
// {
// int num = 0 ;
// for (int j=0;j<l.length();j++)
// {
// if(l.charAt(j)==searchWord.charAt(j))
// {}
// else
// {
// num =num +1;
// }
// if (num ==1)
// {
// flag =true;
// }
// }
//
// }
// else
// {
// i++;
// }
// }
// return flag;
}
public void display() {
if (list == null) {
} else {
System.out.println(Arrays.asList(list));
}
}
public static void main(String[] args) {
MagicDictionary a = new MagicDictionary();
String[] s = {"MagicDictionary", "buildDict", "search", "search", "search", "search"};
String[] s1 = {null, "hello", "hhllo", "hell", "leetcoded"};
a.buildDict(s);
a.display();
String w = "MagicDictionard";
System.out.println(a.search(w));
}
}
最開始我是用list來存貯的,不知道為啥一直給我報超過時間限制錯誤,后來我看了下答案,思路跟我解決的方法一樣,我就改成了數組,還是報超過時間限制錯誤,但是本地運行是沒有問題的。
浙公網安備 33010602011771號