我試圖從http://www.programcreek.com/2014/05/leetcode-implement-trie-prefix-tree-java/瞭解Trie的基於陣列的實現(請參閱Java解決方案2 - 使用數組提高性能)。基於陣列的Trie實現。子數組中的非空值
public void insert(String word) {
TrieNode p = root;
for(int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
int index = c - 'a';
if(p.arr[index] == null) {
TrieNode temp = new TrieNode();
p.arr[index] = temp;
p = temp;
} else {
p = p.arr[index];
}
}
p.isEnd = true;
}
我不確定else分支是否被執行過。我錯過了什麼?
更新1
給定的字只包含小寫英文字母
邊評論:'INT指數= C-'A';'是完全錯誤的。對於大寫字母,數字,空格和許多標點字符,這會產生一個負數。 –
@Jim,請參閱update 1 –
'TrieNode'的源代碼在哪裏? –