首页 > 代码库 > HDProblem-1251统计难题
HDProblem-1251统计难题
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 typedef struct tire 6 { 7 struct tire *next[26];//由于是小写字母,所以26,数字10,大小写字母52 8 int v; 9 }Tire;10 11 Tire *root; //头指针12 13 void Insert(char *a)14 {15 int len,i;16 Tire *p=root,*q;17 for(i=0;i<strlen(a);i++)18 {19 int id=a[i]-‘a‘;20 if(p->next[id]==0)21 {22 q=(Tire *)malloc(sizeof(Tire));//malloc(sizeof( ))表示分配内存空间23 q->v=1; //头文件是stdio.h24 for(int j=0;j<26;j++)25 q->next[j]=0;26 p->next[id]=q;27 p=q;28 }29 else30 {31 p=p->next[id];32 p->v=p->v+1;33 }34 }35 }36 37 int findTire(char *str)38 {39 Tire *p=root;40 for(int i=0;i<strlen(str);i++)41 {42 int id=str[i]-‘a‘;43 if(p->next[id]==0)44 return 0;45 else46 p=p->next[id];47 }48 return p->v;49 }50 51 int main()52 {53 int i;54 char temp[12];55 root=(Tire *)malloc(sizeof(Tire));56 for(i=0;i<26;i++)57 root->next[i]=0;58 root->v=2;59 while(gets(temp),strcmp(temp,"")) //stcmp(temp,"")控制空行结束 60 Insert(temp); //还可以用line[0]!=‘\0‘代替61 memset(temp,‘\0‘,sizeof(temp));62 while(scanf("%s",temp)!=EOF)63 printf("%d\n",findTire(temp));64 }
不太懂的最好看看http://www.cnblogs.com/grubbyskyer/p/3843243.html这篇博客,简单明了
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。