博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYoj 685 查找字符串
阅读量:6953 次
发布时间:2019-06-27

本文共 1525 字,大约阅读时间需要 5 分钟。

描述

小明得到了一张写有奇怪字符串的纸,他想知道一些字符串出现了多少次,但这些字符串太多了,他想找你帮忙,你能帮他吗?输入字符包括所有小写字母、‘@’、‘+’。

 
输入
第一行包含一个整数T(T<=100).表示测试数据组数。
接下来每组数据第一行包含两个整数n,m(n,m<100000),分别表示有n个字符串,小明要问你m次。
接下来n行,每行包含一个字符串,长度不大于15。
接下来m行,每行包含一个字符串,表示小明要问该串出现的次数。
输出
输出每组小明询问数串出现的次数。
样例输入
15 3helloit@is+so@easyhelloibelieveicanachellohelloicannotacitGiveup
样例输出
300 题解:水题,就是多判断了“+”,“@”的情况,修改一下模板即可。 代码:
1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 using namespace std;11 12 13 struct node14 {15 int count; 16 node *next[28]; 17 node(){ //构造函数18 count=0;19 memset(next,0,sizeof(next));20 }21 };22 node *root;23 int k=0;24 void insert(char *a)25 {26 int l=strlen(a);27 node *p=root;28 int i;29 for(i=0;i
next[a[i]-'+']==0)32 {33 p->next[a[i]-'+']=new node;34 } 35 // 已存在此前缀36 p=p->next[a[i]-'+'];37 p->count++;38 }39 }40 int find(char *s)41 {42 struct node *p;43 int len=strlen(s);44 if(len==0) return 0;45 p=root;46 for(int i=0;i
next[s[i]-'+']!=0)48 p=p->next[s[i]-'+'];49 else50 return 0;51 }52 return p->count;53 }54 void de(node *p)55 {56 if(p==0)57 return ;58 int i;59 for(i=0;i<10;i++)60 {61 de(p->next[i]);62 }63 delete p;64 65 }66 int main()67 {68 int t;69 scanf("%d",&t);70 char a[15],b[15];71 while(t--)72 {73 root = new node;74 int n,m;75 k=0;76 scanf("%d%d",&n,&m);77 int i;78 for(i=0;i

 

转载于:https://www.cnblogs.com/wangmengmeng/p/5013929.html

你可能感兴趣的文章
WF4:AcitivityAction和ActivityFunc
查看>>
诺基亚S40手机联系人导入安卓手机
查看>>
java多线程之:创建开启一个线程的开销
查看>>
【福利将至】iPhone用户可用Siri发微信了
查看>>
分布式锁的三种实现方式
查看>>
逆向路由器固件之敏感信息泄露 Part2
查看>>
WebSocket与消息推送
查看>>
apache做转发
查看>>
一条SQL的改写
查看>>
常用的慢查询日志分析工具
查看>>
MySQL单表模拟锁的几个场景
查看>>
因子分解机模型简介
查看>>
SAP LSMW 物料主数据导入毛重净重放大1000倍问题之对策
查看>>
外嫁美的被指违约 东芝创维合作或重谈
查看>>
HCI的全面升温可能导致软件定义型传统阵列遭遇搁浅
查看>>
特斯拉和SolarCity下月召开特别股东大会 表决合并事宜
查看>>
Denyhosts shell script
查看>>
高清摄像机镜头的质量和价格分析
查看>>
中国移动计划牵头推动5G传输国际标准立项
查看>>
苹果补上了可被未授权收集传感器数据的iPhone漏洞
查看>>