随笔分类 -  字符串基础

摘要:对于一个主串和一个子串,我们想知道它们是否匹配,暴力肯定不可取,如果我们用一个数来表示它们中的每一个字符以及子串呢?字符串hash就出现了 \(f(s)=s[1]*base^{len-1}+s[2]*base^{len-2}+…+s[len]*base^{0}\) 很显然,字符串的hash值的计算是 阅读全文
posted @ 2024-05-10 15:58 shaoyufei 阅读(15) 评论(0) 推荐(1) 编辑
摘要:先贴代码 点击查看代码 int j=0; for(int i=2;i<=len2;i++) { while(j&&s2[j+1]!=s2[i]) j=nxt[j]; if(s2[j+1]==s2[i]) j=j+1; nxt[i]=j; }//自己匹配 j=0; for(int i=1;i<=len 阅读全文
posted @ 2024-05-06 15:32 shaoyufei 阅读(13) 评论(0) 推荐(1) 编辑
摘要:https://www.cnblogs.com/tzcwk/p/hash-ull-hack.html 抄的别人的) 还有一个好玩的 1.base为偶数时,只要最后64位对应一样,那么两字符串的哈希值相同 \(f_i(s)=s[1]*base^{i-1}+s[2]*base^{i-2}+……+s[i] 阅读全文
posted @ 2024-04-26 15:56 shaoyufei 阅读(85) 评论(5) 推荐(1) 编辑