0
我有一段需要優化的代碼。通過選擇另一個數據結構來優化代碼
for (int i = 0; i < wordLength; i++) {
for (int c = 0; c < alphabetLength; c++) {
if (alphabet[c] != x.word.charAt(i)) {
String res = WordList.Contains(x.word.substring(0,i) +
alphabet[c] +
x.word.substring(i+1));
if (res != null && WordList.MarkAsUsedIfUnused(res)) {
WordRec wr = new WordRec(res, x);
if (IsGoal(res)) return wr;
q.Put(wr);
}
}
}
單詞用字符串表示。問題是第4-6行的代碼創建了許多字符串對象,因爲字符串是不可變的。
如果我想要更快的代碼,我應該將哪個數據結構更改爲單詞表示形式?我曾試圖改變它的char [],但當時我有讓下面的代碼工作的問題:
x.word.substring(0,i)
如何從一個char []得到子陣?以及如何連接4.6行的char和char []?
是否還有其他適用的可變數據結構可供使用?我曾經想過stringbuffer,但是在stringbuffers上找不到合適的操作。
該函數根據特定的單詞生成相差一個字符的所有單詞。WordRec只是一個表示單詞的字符串,以及指向該單詞「父親」的指針。
在此先感謝
它有什麼作用? – Ryan 2013-04-20 22:30:39
什麼是'WordList'類型和什麼是'WordRec'?另外,'IsGoal'是一種方法?如果是,那麼請正確使用caseCamel來命名它。 – 2013-04-20 22:30:55