[字符串] KMP与字符哈希

KMP

首先,要知道在KMP算法里的 next 数组里,对操作的字符串到底存储了什么。

以当前字符为结尾的子串,真前缀与真后缀相同的最长长度。(注意:不是说回文;而且是“真”,也就是说,不会包含一整个原字符串)

字符串哈希

定义

用类似前缀和的形式以便求出任意一个子串的Hash值

自然溢出:ull类型的数据,是64位且不包含符号位的数据,溢出相当于是对 2^64 取模。

进制base

h[i] 计算的是字符串 s[1-i] 哈希值

计算

把前一个的值乘 base ,再加上本位的字符值。

要减去 h[l-1],且因为乘了base好几次,所以要减的是 h[l-1] 的 b[r-l+1] 的倍数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值