猿问

“charAt(i) - 'a'”在Trie结构中是什么意思?

我正在阅读有关检查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); 


慕斯709654
浏览 119回答 3
3回答

桃花长相依

假设只包含小写英文字母,则将每个小写字母映射到 0(表示“a”)和 25(表示“z”)之间的索引。keykey.charAt(i) = 'a'数组的长度可能为 26,该数组的每个元素都对应于 “a” 和 “z” 之间的后者。children

白猪掌柜的

在java中,每当我们从另一个字符中减去一个字符时,它会将两个字符转换为ascii代码并返回它们的减法,例如:- a的ascii代码是97,b的ascii代码是98( 'b' - 'a' )将返回1在代码中,当您在此方法中传递字符串时,它将从字符串的每个字符返回“a”的减法

三国纷争

char变量实际上是积分,反映了相应字符的 Unicode 值。 因此,实际上 ; 是等。从字符中减去 97 会将字符转换为 和 之间的数字。'a'97'b'98'a''z'025
随时随地看视频慕课网APP

相关分类

Java
我要回答