我正在阅读有关检查Trie数据结构的搜索函数,但我不明白为什么代码会减去字符a以获得索引。有人能帮忙吗?提前感谢!
// Returns true if key presents in trie, else false
static boolean search(String key)
{
int level;
int length = key.length();
int index;
TrieNode pCrawl = root;
for (level = 0; level < length; level++)
{
index = key.charAt(level) - 'a';
if (pCrawl.children[index] == null)
return false;
pCrawl = pCrawl.children[index];
}
return (pCrawl != null && pCrawl.isEndOfWord);
}
发布于 2019-03-24 22:44:33
假设key
只包含小写英文字母,key.charAt(i) = 'a'
将每个小写字母映射到0 (for 'a')到25 (for Z)之间的索引。
children
数组的长度可能为26,该数组的每个元素对应于'a‘和'z’之间的一个元素。
https://stackoverflow.com/questions/55332426
复制相似问题