int trie[N][65],cnt[N],idx;
int getnum(char x){
if(x>='A'&&x<='Z')
return x-'A';
else if(x>='a'&&x<='z')
return x-'a'+26;
else
return x-'0'+52;
}
void add(string x){
int p=0;
for(int i=0;i<x.size();i++){
int tmp=getnum(x[i]);
if(!trie[p][tmp]) trie[p][tmp]=++idx;
p=trie[p][tmp];
cnt[p]++;
}
}
int trie_find(string x){
int p=0;
for(int i=0;i<x.size();i++){
int tmp=getnum(x[i]);
if(!trie[p][tmp]) return 0;
p=trie[p][tmp];
}
return cnt[p];
}
1 个赞