需求没说清时该回答什么

把选型写成从需求描述里认关键词,认不出来就老实说先问清楚。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

预处理摊到十段文本上

模式固定是 ababc,文本一段接一段地来,每段都长 abababcababcabababc 那样。next 表只需要算一次。按 暴力1段 / 暴力10段 / KMP1段 / KMP10段 的顺序输出比较次数。 (本题用 g++ -std=

开始练习 →

交付匹配实现先验哪一样

第 1 步:三种写法各找一遍 第 2 步:暴力 找到三个位置 第 3 步:哈希 找到三个位置 第 4 步:KMP 找到三个位置 第 5 步:三行完全一样:对账通过 暴力 哈希 KMP 2 7 14 2 7 14 2 7 14 写完一个匹配算

开始练习 →

拿什么当验收条款

匹配的结果可能有好几个位置,代价又随算法变。验收该钉在【0】。

开始练习 →

少了确认那一步多出几个

一段文本 abababcababcabababc(19 个字符,下标从 0 起)和一个模式 ababc。 把一段字符折成一个数:h = (h × 31 + 字母序号) % 17,a 记 1、b 记 2、c 记 3。 左边是逐字符比出来的个数

开始练习 →

第一步先有一条基准线

一段文本 abababcababcabababc(19 个字符,下标从 0 起)和一个模式 ababc。 交付流程第一步:写一个慢但一定对的暴力版,后面所有算法都拿它对账。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第二步哈希版别忘确认

一段文本 abababcababcabababc(19 个字符,下标从 0 起)和一个模式 ababc。 把一段字符折成一个数:h = (h × 31 + 字母序号) % 17,a 记 1、b 记 2、c 记 3。 第二步:写哈希版,并且和

开始练习 →

第三步 KMP 连表一起验

一段文本 abababcababcabababc(19 个字符,下标从 0 起)和一个模式 ababc。 第三步:KMP 已经写好了。输出 next 表里最大的那个值、KMP 找到的位置个数、以及它和暴力对不对得上(1 或 0)。 (本题用

开始练习 →

第四步多模式也要对账

四个要找的词 he、she、his、hers,一段文本 ushershishe(11 个字符,下标从 0 起)。 第四步:Trie 一次扫过、和四个词各扫一遍,两条路的命中必须一样。输出两边各命中几处、以及是否一样(1 或 0)。 (本题用

开始练习 →

交付五条验收一起过

一段文本 abababcababcabababc(19 个字符,下标从 0 起)和一个模式 ababc。 四个要找的词 he、she、his、hers,一段文本 ushershishe(11 个字符,下标从 0 起)。 最后一步:五条验收条

开始练习 →