代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <stack>
#include <map>
#include <set>
#include <queue>
#define inf 0xffffffff
#define LL long long
using namespace std;
typedef struct tir{
int num,cur;
struct tir *next[26];
}tire;
tire *root;
void init(tire *(&p)){
p=(tire *)malloc(sizeof(tire));
for(int i=0;i<26;i++)p->next[i]=0;
p->cur=0;
p->num=0;
}
void insert(char *str){
int i=0;
tire *p=root,*q;
while(str[i]!=0){
if(!p->next[str[i]-'a']){
tire *q;
init(q);
p->next[str[i]-'a']=q;
}
q=p;
p=p->next[str[i]-'a'];
i++;
}
q->num++;
q->cur=1;
}
int find(tire *p,char str[]){
int k=0;
tire *q;
while(str[k]!=0&&p->next[str[k]-'a']){
q=p;
p=p->next[str[k]-'a'];
k++;
}
if(str[k]==0){
return q->num;
}
return 0;
}
int main()
{
init(root);
char a[10]="asdfgh",b[10]="asdf";
insert(a);
insert(b);
insert(a);
cout<<find(root,b);
return 0;
}