本文整理汇总了C++中TrieNode::findCh方法的典型用法代码示例。如果您正苦于以下问题:C++ TrieNode::findCh方法的具体用法?C++ TrieNode::findCh怎么用?C++ TrieNode::findCh使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TrieNode
的用法示例。
在下文中一共展示了TrieNode::findCh方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: insert
// Inserts a word into the trie.
void insert(string s)
{
if (s.empty())
return;
TrieNode* p = root;
int i = 0;
while (i < s.size())
{
TrieNode* tmp = p->findCh(s[i]);
if (nullptr == tmp)
{
p->addChild(s[i]);
++i;
p = p->getLastChild();
}
else
{
++i;
p = tmp;
}
}
p->isAWord(true);
return;
}
示例2: startsWith
// Returns if there is any word in the trie
// that starts with the given prefix.
bool startsWith(string prefix)
{
if (prefix.empty() || " " == prefix)
return true;
TrieNode* p = root;
int i = 0;
while (nullptr != p && i < prefix.size())
{
p = p->findCh(prefix[i++]);
}
if (nullptr == p && i <= prefix.size())
return false;
else if (nullptr != p && i == prefix.size())
return true;
}
示例3: search
// Returns if the word is in the trie.
bool search(string key)
{
if (key.empty() || " " == key)
return true;
TrieNode* p = root;
int i = 0;
while (nullptr != p && i < key.size())
{
p = p->findCh(key[i++]);
}
if (nullptr == p)
return false;
else if (i == key.size() && p->isAWord())
return true;
return false;
}