HDU-1251 统计难题(字典树+map)
来源:互联网 发布:c语言中if else的格式 编辑:程序博客网 时间:2024/05/05 03:23
字典树模板题,这里套用一位大神的模板
#include <cstdio>#include <cstring>#include <malloc.h>#include <iostream>using namespace std;#define MAXN 26typedef struct Trie{ int v;//根据需要变化 Trie *next[MAXN]; //next是表示每层有多少种类的数,如果只是小写字母,则26即可, //若改为大小写字母,则是52,若再加上数字,则是62了}Trie;Trie root;void createTrie(char *str){ int len = strlen(str); Trie *p = &root, *q; for(int i = 0; i < len; i++) { int id = str[i]-'a'; if(p->next[id] == NULL) { q = (Trie *)malloc(sizeof(root)); q->v = 1;//初始v==1 for(int j = 0; j < MAXN; j++) q->next[j] = NULL; p->next[id] = q; p = p->next[id]; } else { p->next[id]->v++; p = p->next[id]; } } // p->v = -1;//若为结尾,则将v改成-1表示}int findTrie(char *str){ int len = strlen(str); Trie *p = &root; for(int i = 0; i < len; i++) { int id = str[i]-'a'; p = p->next[id]; if(p == NULL) //若为空集,表示不存以此为前缀的串 return 0; // if(p->v == -1) //字符集中已有串是此串的前缀 // return -1; } return p->v; //return -1; //此串是字符集中某串的前缀}int dealTrie(Trie* T){ //动态字典树,有时会超内存,这是就要记得释放空间了 if(T==NULL) return 0; for(int i = 0; i < MAXN; i++) { if(T->next[i]!=NULL) dealTrie(T->next[i]); } free(T); return 0;}int main(){ char str[15]; for(int i = 0; i < MAXN; i++) root.next[i] = NULL; while(gets(str) && str[0]!='\0') createTrie(str); memset(str, 0, sizeof(str)); while(scanf("%s", str) != EOF) { int ans = findTrie(str); printf("%d\n", ans); } return 0;}
0 0
- HDU-1251 统计难题(字典树+map)
- 【HDU】1251 - 统计难题(字典树 || STL - map & string)
- HDU-1251-统计难题(字典树||map)
- HDU 1251 统计难题(字典树,map)
- HDU 1251 (统计难题) 字典树模板&&map实现
- HDU 1251:统计难题【字典树 & string+map】
- HDU-1251 统计难题,字典树或者map!
- hdu 1251-统计难题(字典树||map||数组)
- HDU 1251统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题 (字典树)
- hdu 1251 统计难题(字典树)
- HDU 1251 统计难题(字典树)
- HDU 1251 统计难题(字典树)
- HDU 1251 统计难题(字典树)
- HDU-#1251 统计难题(字典树)
- LeetCode#226 Invert Binary Tree
- Web性能优化-浏览器端
- CRC校验
- 48.队花的烦恼一
- ios 坏蛋伦理学
- HDU-1251 统计难题(字典树+map)
- 初遇匹凸匹
- 内存恶鬼drawRect - 谈画图功能的内存优化
- 49.比较字母大小
- jQuery校验
- mysql中使用sql找出每组当中最大的那条数据
- 测试工作经验分享
- 使用maven插件对java工程进行打包
- 50.车牌号