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