【字符串匹配】字典树模板
2014-12-06 10:26
183 查看
字典树
tree.insert(s,v); 插入字符串s,其中v为字符串的序号(从1开始)。
tree.exist(s); 检测字符串s是否存在。
tree.insert(s,v); 插入字符串s,其中v为字符串的序号(从1开始)。
tree.exist(s); 检测字符串s是否存在。
struct Trie { int ch[1000005][26]; int val[1000005]; int size; Trie() { size=1; memset(ch[0],0,sizeof(ch[0])); } int idx(char c) { return c-'a'; } void insert(char *s,int v) { int u=0,len=strlen(s); for (int i=0;i<len;i++) { int c=idx(s[i]); if (!ch[u][c]) { memset(ch[size],0,sizeof(ch[size])); val[size]=0; ch[u][c]=size++; } u=ch[u][c]; } val[u]=v; } bool exist(char *s) { int u=0,len=strlen(s); for (int i=0;i<len;i++) { int c=idx(s[i]); if (!ch[u][c]) { return false; } u=ch[u][c]; } if (val[u]) return true; else return false; } } tree;
相关文章推荐
- 字符串匹配--字典树模板
- 字符串匹配:后缀树组模板(关键点理解)
- 算法模板——哈希单模板字符串匹配
- 字符串匹配--manacher算法模板
- 字符串匹配 KMP(模板)
- 字符串匹配(二)——Trie:字典树
- 洛谷P3375 - 【模板】KMP字符串匹配
- 洛谷P3375 - 【模板】KMP字符串匹配
- 【字符串匹配】UVALive 4670 模板题
- 【模板】字符串匹配KMP算法
- poj 3461(kmp字符串匹配模板)
- ACM常用模板——字符串匹配——KMP
- 字符串匹配--AC自动机模板
- 【HDU - 5716 】带可选字符的多字符串匹配 【ShiftAnd 算法 模板】
- 洛谷P3375 【模板】KMP字符串匹配
- luogu P3375 【模板】KMP字符串匹配
- 洛谷P3375 【模板】KMP字符串匹配
- 字符串匹配 KMP算法 模板
- 【模板】KMP字符串匹配
- P3375 【模板】KMP字符串匹配