⚠️ 把假阳性揪出来

⚠️ 把假阳性揪出来

把一段字符折成一个数:h = (h * 31 + 字母序号) % 17,a 记 1、b 记 2、c 记 3。找出那些哈希对上了、字符却不一样的位置。

阅读更多 →
🔴 加上确认这一步,五个变三个

🔴 加上确认这一步,五个变三个

把一段字符折成一个数:h = (h * 31 + 字母序号) % 17,a 记 1、b 记 2、c 记 3。补上逐字符确认那一步,输出「只比哈希挑出几个」和「确认之后剩几个」。

阅读更多 →
自己写:把每个窗口的哈希算出来

自己写:把每个窗口的哈希算出来

把一段字符折成一个数:h = (h * 31 + 字母序号) % 17,a 记 1、b 记 2、c 记 3。补全 roll_all,输出哈希值和模式相同的那些位置。

阅读更多 →
⚠️ 只比哈希,会挑出几个位置

⚠️ 只比哈希,会挑出几个位置

把一段字符折成一个数:h = (h * 31 + 字母序号) % 17,a 记 1、b 记 2、c 记 3。只比哈希值、不做逐字符确认,数一数会挑出多少个位置: T = "abababcab

阅读更多 →
模式折出来是多少

模式折出来是多少

把一段字符折成一个数:h = (h * 31 + 字母序号) % 17,a 记 1、b 记 2、c 记 3。 T = "abababcababcabababc" P = "

阅读更多 →
⚠️ 哈希值一样,能直接判定匹配吗

⚠️ 哈希值一样,能直接判定匹配吗

某个窗口的哈希值和模式的一样。这时候【0】。

阅读更多 →
滚动哈希省掉的是什么

滚动哈希省掉的是什么

窗口往右挪一格时,滚动哈希不用重算,因为它【0】。

阅读更多 →
字符串哈希是拿来干什么的

字符串哈希是拿来干什么的

把一段字符折算成一个整数,这么做是为了【0】。

阅读更多 →
⚠️ 把比较次数和回退格数一起数出来

⚠️ 把比较次数和回退格数一起数出来

一段文本 abababcababcabababc(19 个字符,下标从 0 起)和一个模式 ababc:一次输出三个数:比较次数、回退次数、一共退了多少格。

阅读更多 →
自己写:暴力匹配

自己写:暴力匹配

一段文本 abababcababcabababc(19 个字符,下标从 0 起)和一个模式 ababc:补全 brute,输出全部出现位置。

阅读更多 →