字符串总结

字符串总结

字符串hash:

Trie:

LA 3942:Remember the Word 

题意:给出一个有S个不同单词组成的字典和一个长字符串。把这个字符串分解成若干个单词的连接(单词可以重复使用),有多少种方法? 解题报告

UVa 11732:strcmp() Anyone?

题意:输入n个字符串,两两调用一次strcmp(),问字符比较的总次数是多少? 解题报告


KMP:
LA 3026:Period
题意:给定一个长度为n的字符串s,求它每个前缀的最短循环节。对于每个i(2<=i<=n),求一个最大的整数k>1(如果k存在),使得s的前i个字符组成的前缀是某个字符串重复k次得到。输出所有存在k的i和对应的k。
思路:首先根据kmp的方式求得next数组,然后我们可以发现,如果i-next[i] | i,那么就是一个循环节代码

扩展KMP:
poj 1699:Best Sequence
题意:给定一些字符串,如果一个字符串的后缀与另一个字符串的前缀相同,可以拼接,问经过拼接之后,可以组成的最短的字符串的长度。
思路:用扩展KMP预处理出每两个字符串的最大拼接值,然后DFS搜索最小值即可。 代码

串的最小表示法:
HDU 2609:How many
题意:给定一些长度相同的字符串,若两个字符串能够经过循环同构得到,则两者视为同一个字符串,问有多少种不同的字符串。
思路:将每一个字符串表示为最小表示法,然后排序,去重,即为答案。 解题报告

AC自动机:
一些题目总结:传送门

后缀数组:


(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值