看图片一下就理解了
图片
还不理解的话看这个视频
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int son[N][26],cnt[N],idx;
char str[N];
void insert(char *s){
int p=0;
for(int i=0;s[i];i++){
int j=s[i]-'a';//int j=s[i]='a';这是什么勾吧。不要像我一样粗心
if(!son[p][j])son[p][j]=++idx;
p=son[p][j];
}
cnt[p]++;
}
int query(char *s){
int p=0;
for(int i=0;s[i];i++){
int j=s[i]-'a';//int j=s[i]='a';
if(!son[p][j])return 0;;
p=son[p][j];
}
return cnt[p];
}
int main(){
int n;cin>>n;
while(n--){
char x;cin>>x;
scanf("%s",str);//scanf("%c%s",x,str);这样输入问题
// cout<<str<<endl;
if(x=='I')insert(str);
else cout<<query(str)<<endl;
}
}