进行 DFS 时 Tries 中的原始值 (int)
Primitive values (int) in Tries while doing DFS
我正在尝试计算 Trie 中 prefixCount 的值,如下所示。
我很困惑为什么count的值不是returned as 3
以防万一,Tries 包含 [by,bye, byer, rat]。为什么计数 return 为 0,而不是 3。
public int prefixCount(String prefix)
{
int count = 0;
TrieNode node = searchPrefix(prefix);
if(node != null)
{
prefixCount(prefix, node, count);
}
return count;
}
public void prefixCount(String prefix, TrieNode node, int count)
{
if(node.isEnd())
{
count++;
}
for(int index = 0;index < 26;index++)
{
char value = (char) (index + 'a');
TrieNode next = node.get(value);
if(next != null)
{
prefixCount(prefix + value, next, count);
}
}
}
我是不是在做DFS操作的时候做错了。
谢谢!
我没有正确定义我的方法。合适的方法如下。
public int prefixCount(String prefix)
{
int count = 0;
TrieNode node = searchPrefix(prefix);
if(node.isEnd())
{
count++;
}
for(int index = 0;index < 26;index++)
{
char value = (char) (index + 'a');
TrieNode next = node.get(value);
if(next != null)
{
count += prefixCount(prefix + value);
}
}
return count;
}
谢谢!
我正在尝试计算 Trie 中 prefixCount 的值,如下所示。
我很困惑为什么count的值不是returned as 3
以防万一,Tries 包含 [by,bye, byer, rat]。为什么计数 return 为 0,而不是 3。
public int prefixCount(String prefix)
{
int count = 0;
TrieNode node = searchPrefix(prefix);
if(node != null)
{
prefixCount(prefix, node, count);
}
return count;
}
public void prefixCount(String prefix, TrieNode node, int count)
{
if(node.isEnd())
{
count++;
}
for(int index = 0;index < 26;index++)
{
char value = (char) (index + 'a');
TrieNode next = node.get(value);
if(next != null)
{
prefixCount(prefix + value, next, count);
}
}
}
我是不是在做DFS操作的时候做错了。
谢谢!
我没有正确定义我的方法。合适的方法如下。
public int prefixCount(String prefix)
{
int count = 0;
TrieNode node = searchPrefix(prefix);
if(node.isEnd())
{
count++;
}
for(int index = 0;index < 26;index++)
{
char value = (char) (index + 'a');
TrieNode next = node.get(value);
if(next != null)
{
count += prefixCount(prefix + value);
}
}
return count;
}
谢谢!