AcWing 835. Trie字符串统计
原题链接
简单
作者:
烧仙草
,
2020-08-11 12:18:32
,
所有人可见
,
阅读 387
#include<iostream>
using namespace std;
const int N=1e5+10;
int son[N][26],cnt[N],idx;
char str[N];
void insert(char op[]){
int p=0;
for(int i=0;op[i];i++){
int u=op[i]-'a';
if(!son[p][u]) son[p][u]=++idx;//idx代表绝对位置
p=son[p][u];
}
cnt[p]++;
}
int query(char op[]){
int p=0;
for(int i=0;op[i];i++){
int u=op[i]-'a';
if(!son[p][u]) return 0;
p=son[p][u];
}
return cnt[p];
}
int main(){
int n;
cin>>n;
while(n--){
char s[2];
cin>>s;
if(s[0]=='I'){
cin>>str;
insert(str);
}
else{
cin>>str;
printf("%d\n",query(str));
}
}
}