博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCNUOJ 1027 教你前缀
阅读量:5044 次
发布时间:2019-06-12

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

1027: 教你前缀

Time Limit: 1 Sec  
Memory Limit: 128 MB
Submit: 29  
Solved: 6
[ ][ ][ ]

Description

什么是前缀你懂吧,不懂?那我告诉你,假如串S1S2长度分别是len1len2len1<=len2S2的前len1个字母和S1一样,则S1S2的前缀。CJR不是在给叶老师做项目嘛,今天遇到一个小问题,找到wuyuwuyu也不会做,那就请教你来了。叶老师给他很多全是英文小写字母字符串,要她统计一下这里面有多少个串可以做其他串的前缀,重复的串只统计一次。

Input

正整数n,(n<=40000),然后输入n个字符串,每个字符串长度不超过10个字符。

Output

一行,表示这些串里面能做其他串前缀的串的个数。

Sample Input

6 ababa aba bab ab b ab 2 abc abc

Sample Output

3 1

思路:节点除了一般内容外,存储这个节点是否有子节点,也就是当给它增加子节点时修改该节点布尔值;另外存储以该节点为终点的单词数量。最后扫描所有节点,统计其有子节点并且以该节点为终点的单词书不为0,或者该节点为2个以上单词的终点节点个数即可。

#include
#include
using namespace std;int cnt;struct node{ char x; int c[26],n; bool s; void nod1(){memset(c,-1,sizeof(c));n=0;s=false;}}t[130000]; void insert(char s[12]){ int now=s[0]-'a',len=strlen(s),i; for(i=1;i
1) ans++; printf("%d\n",ans); } return 0;}

  

转载于:https://www.cnblogs.com/laputa/archive/2011/07/30/2121606.html

你可能感兴趣的文章
HTTP协议(转)
查看>>
codevs1145
查看>>
图---DFS
查看>>
kuangbin专题十六 KMP&&扩展KMP HDU3746 Cyclic Nacklace
查看>>
递归算法,JavaScript实现
查看>>
java基本类型包装类
查看>>
【python学习】之五、可调用对象
查看>>
Hibernate双向多对多关联
查看>>
peewee
查看>>
linux坑
查看>>
java.lang.IllegalArgumentException: object is not an instance of declaring class
查看>>
JVM 垃圾回收机制和常见算法
查看>>
MongoDB连接数与连接优化
查看>>
go web的简单服务器
查看>>
用Bottle开发web程序(一)
查看>>
高级定时器TIM1&TIM8
查看>>
爬取豌豆荚
查看>>
程序员面试经验
查看>>
AdminLTE的使用
查看>>
1001 数组中和等于K的数对
查看>>