杭电1251 统计难题
2016-04-30 16:48
295 查看
/* 统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 29864 Accepted Submission(s): 11652 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注意:本题只有一组测试数据,处理到文件结束. Output 对于每个提问,给出以该字符串为前缀的单词的数量. Sample Input banana band bee absolute acm ba b band abc Sample Output 2 3 1 0 */ #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct trie_Node { int count;//统计单词前缀出现的次数 struct trie_Node *next[26];//指向各个子树的指针 bool exist;//标记该结点处是否构成单词 }TrieNode,*Trie; Trie createTrieNode() { TrieNode *node=(TrieNode *)malloc(sizeof(TrieNode)); memset(node->next,0,sizeof(node->next));//初始化为空指针 node->count=0; node->exist=false; return node; } void insert_Trie(Trie root,char *word) { Trie node=root; int id; char *p=word; while(*p) { id=*p-'a'; if(node->next[id]==NULL) { node->next[id]=createTrieNode(); } node=node->next[id]; p++; node->count += 1; } node->exist=true;//一个单词结束 } int search_Trie(Trie root,char *word) { Trie node=root; int id; char *p=word; while(*p) { id=*p-'a'; node=node->next[id]; p++; if(node==NULL) return 0; } return node->count; } int main() { char str[12]; int flag=0; TrieNode *root=createTrieNode();//根节点的初始化 一定要记得root为指针类型 while(gets(str))//此处的gets不能取反 { if(flag) { printf("%d\n",search_Trie(root,str)); } else { if(strlen(str)!=0) { insert_Trie(root,str); } else { flag=1; } } } return 0; }用G++上传会显示Memory Limit Exceeded 用C++上传就是AC 不要问我为什么 我还不清楚。。。
相关文章推荐
- 【排序算法】八大排序算法总结
- 第一章
- HTML引入css样式的方法示例
- 深圳户籍居民如何参加社保
- Swiper – 经典的移动触摸滑块插件(免费)
- 【翻译自mos文章】怎么获得Oracle Database 12c中的audit session id
- linux内存源码分析 - 内存回收(lru链表)
- iOS 类微信语音播放之切换听筒和扬声器的方法解决方案
- 8种CSS清除浮动的方法优缺点分析
- 表单标签制作一般的登录界面
- storyBoard正传逆传代理解耦
- [可并堆] BZOJ 1078 [SCOI2008]斜堆
- poj 2376 Cleaning Shifts
- 查看当前Linux内核配置文件/proc/config.gz
- placeholder
- 对象初始化总结
- js动态dom节点对象和非动态dom节点对象
- 环境搭建常用工具
- 基础系列(8)—— 抽象方法和接口
- 使用CMD/PowerShell调用7-Zip压缩文件夹