LeetCode 208. 实现 Trie (前缀树)
原题链接
中等
作者:
toFuture
,
2025-03-29 00:29:20
· 江苏
,
所有人可见
,
阅读 1
class Trie {
struct Node{
bool is_end;
Node *son[26];
Node(){
is_end=false;
for(int i=0;i<26;i++)son[i]=NULL;
}
}*root;
public:
Trie() {
root=new Node();
}
void insert(string word) {
auto p=root;
for(auto c:word)
{
int u=c-'a';
if(!p->son[u])p->son[u]=new Node();
p=p->son[u];
}
p->is_end=true;
}
bool search(string word) {
auto p=root;
for(auto c:word)
{
int u=c-'a';
if(!p->son[u])return false;
p=p->son[u];
}
return p->is_end;
}
bool startsWith(string prefix) {
auto p=root;
for(auto c:word)
{
int u=c-'a';
if(!p->son[u])return false;
p=p->son[u];
}
return true;
}
};