字符串
主要包括字符串的内容
&不白熊
一头不白熊
展开
-
Manacher(马拉车算法)
Manacher算法,又叫“马拉车”,它可以在时间复杂度和空间复杂度都是O(n)的情况下,求出一个字符串的最长回文串长度。首先将字符拓展为固定形式例如abc拓展为:abc -> #a#b#c ->@#a#b#c%(4,最后将p里的数字减去1然后除以二((p[i]-1)/2)后就是该位置最大的回文长度了。在a的超大回文中,可以直接将左侧回文的复制到右侧,通过这种方法来优化朴素算法。1,变换字符串:abc -> #a#b#c ->@#a#b#c%(3》如果拓展后的边界大于R,就迭代R和Mid。原创 2024-08-08 21:34:31 · 436 阅读 · 0 评论 -
字符串哈希
在自然溢出法中将字符 * 一个质数后 mod 一个超级大的质数(防止溢出)哈希值为pair的一个键值对。主要用到哈系思想,将不同字符串与对应数字组成key-value的形式。unsigned long long 范围是 0 —— 2^64-1。一般用unsigned long long,因为不需要使用负数。long long 范围是-2^63 —— 2^63-1。常用于判断一个字符串是否出现过,或者出现几次。由两个Base构成,基本不会产生哈希冲突。原创 2024-08-08 18:59:41 · 89 阅读 · 0 评论 -
KMP算法
包括:ε(空串)、"c"、"bc"、"abc"、"babc"和"ababc"包括:ε(空串)、"a"、"ab"、"aba"、"abab"和"ababc"这样在匹配时可以直接向后移,从而减少朴素算法的时间复杂度。最简单的字符串算法,用于寻找字符串是否在文本中出现过。如果前后缀相同那么就意味着。一个较为简单的next函数。字符串"ababc"的。字符串"ababc"的。在kmp中,前后缀应该。效率较高的next函数。原创 2024-08-08 11:13:01 · 338 阅读 · 0 评论