字符串
summer_via
不积跬步无以至千里
展开
-
【字符串】KMP匹配模板
kmp算法:kmp算法就是通过模式串的自身匹配来构造跳跃数组next[],来加速运算。匹配时,若失去匹配,则模式串直接跳跃到最长前缀匹配的地方。模板:/* kmp算法: * kmp()返回匹配数。 * next[i]:ss的第i个位置前的最长与模式串ss前缀匹配的长度。 * vis[i]:第i个位置是否被匹配。 * 使用kmp()前必须调用pre_kpm(); * 时间复杂度原创 2016-07-28 21:44:14 · 729 阅读 · 0 评论 -
hihoCoder 1014 Trie树【python版】
python版的简单字典树:n = int(raw_input())lis = []for i in range(n): str = raw_input() lis.append(str)trie = {}for i in range(n): p=trie for ch in lis[i]: if not p.has_key(ch):原创 2017-03-18 21:13:47 · 742 阅读 · 0 评论 -
hdu-1358 KMP
思路题目意思简单来说就是给定字符串,求该字符串的最小周期长度。关于周期符号约定:t表示一个周期,kt表示k个周期构成的字符串,即tttttt…t,共k个t,k代表周期数,‘+’表示连接字符串每个前缀至少可以看成一个周期我们首先找到的必然是形如2t的周期数大于1的前缀若字符串s=kt+t,则s的周期也为t,周期为(k+1)(看起来是废话)结合 (2)(3),可以归纳出我们通过kt+t...原创 2019-02-19 21:37:45 · 227 阅读 · 0 评论