trie树
#include <cstdio> #include <cstring> #include <vector> #include <string> #include <iostream> #include <algorithm> #include <map> using namespace std; const int N = 100010; struct Tree { int v; struct Tree *pchild[26]; Tree():v(1) { for(int i=0;i<26;i++) pchild[i]=NULL; } }*tree; void build(Tree *tree,char *s) { tree->v++; int len = strlen(s); for(int i = 0; i < len; i++) { int u = s[i]-'a'; if(tree->pchild[u] == NULL) { Tree *p = new Tree; tree->pchild[u] = p; } else { tree->pchild[u]->v++; } tree = tree->pchild[u]; } } int find(Tree *tree,char *s) { int len = strlen(s); for(int i = 0; i < len; i++) { int u = s[i]-'a'; if(tree->pchild[u] == NULL) return 0; if(i+1 == len) return tree->pchild[u]->v; tree = tree->pchild[u]; } } int main() { int n,m; tree = new Tree(); tree->v = 0; scanf("%d",&n); char a[50]; for(int i = 0; i < n; i ++) { scanf("%s",a); build(tree,a); } scanf("%d",&m); for(int i = 0; i < m; i ++) { scanf("%s",a); printf("%d\n",find(tree,a)); } return 0; }
posted on 2015-11-20 15:42 zyz913614263 阅读(156) 评论(0) 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 博客园2025新款「AI繁忙」系列T恤上架
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)
· C# LINQ 快速入门实战指南,建议收藏学习!
· Redis实现高并发场景下的计数器设计
· 上周热点回顾(4.7-4.13)