刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

【题目描述】

二战期间,德军使用一种名为“Enigma”的密码机。这个密码机最终被盟军破解的关键之一,是来自于使用它的人的习惯。德军每天发送的电报中,会有很多重复的词语,比如问候语、结尾的落款、每天的天气等等。盟军的破解人员把这些重复出现的词语称作“crib”。知道了“crib”,还要知道“crib”在密文中的什么位置。由于“Enigma”是通过电路加密,所以一

个字母加密后绝对不会仍然是自身,这个特性可以帮助我们定位“crib”的位置。

例如盟军截获了一条密文"XEQFTWRWEVTRES",并且我们猜测原文中可能含有"WETTER"这个词。因为字母绝对不会被加密成自身,所以当我们将"WETTER"这个词和密文去比对,就可以找到这个词可能的位置。

在下面这个位置时,"WETTER"和密文对应的每个位置的字母都不相同,所以这条密文的原文中可能含有"WETTER"。

一条密文中可能含有不止一种“crib”,同一种“crib”也可能出现多次,“crib”所占据的位置不能有重叠。给出所有可能的“crib”和一条密文,你要求出这条密文中可能包含的“crib”的最多个数。

【输入格式】

第 1 行,1 个正整数 n,表示有 n 种“crib”。

接下来 n 行,每行一个字符串,表示 1 种“crib”。

最后 1 行,1 个字符串,表示密文。

【输出格式】

输出 1 个整数,表示密文中可能包含的“crib”的最大个数。


【输入样例 1】

2

WETTER

XORT

XEQFTWROEXGRES

【输出样例 1】

2


【输入样例 2】

2

CRYTIC

OVULIST

CCNDDZIYXDSMTOS

【输出样例 2】

2


【输入样例 3】

3

RUBRA

DOING

GRATED

XMQWVBJAMMRGCOXQPFIZOBMDUYOXJNGTTNRJOHLD

【输出样例 3】

8


【说明提示】

样例 1 说明:

如下安排两个 crib 的位置,最多包含 2 个 crib。

crib 也可能在如下两个位置,仍然是包含 2 个 crib。

样例 2 说明:

如下安排两个 crib 的位置,最多包含 2 个 crib。

【数据范围】

对 10%数据:n=1

另有 10%数据满足:所有“crib”的长度都等于 1。

对 100%数据:1≤n≤50;“crib”互不相同。“crib”的长度不超过 50,密文的长度不超过 105,输入中所有字符串只含大写英文字母。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

对于给定的输入,我们需要找出密文中可能包含的“crib”的最大个数。为了解决这个问题,我们可以使用滑动窗口的方法。1. 首先,对每种“crib”的长度进行排序,以确保我们在处理时从最短的“crib”开始。2. 对于每种“crib”,我们使用滑动窗口在密文中寻找可能的匹配。3. 在寻找匹配的过程中,我们需要确保窗口内的字符与“crib”对应位置的字符都不相同,并且窗口内的字符不能形成其他“crib”。4. 如果找到了一个匹配,我们将计数器加一,并继续寻找下一个匹配。5. 最后,返回计数器的值,即为密文中可能包含的“crib”的最大个数。

解析:

【喵呜刷题小喵解析】:

这个题目要求我们在给定的密文中找出可能包含的“crib”的最大个数。由于“Enigma”密码机的特性,一个字母加密后绝对不会仍然是自身,因此我们可以通过比较“crib”和密文中对应位置的字符是否相同来确定是否存在匹配。

然而,题目中的限制条件是“crib”所占据的位置不能有重叠,这增加了问题的难度。为了解决这个问题,我们可以使用滑动窗口的方法。

首先,我们需要对所有的“crib”按照长度进行排序,这样可以确保我们在处理时从最短的“crib”开始。然后,对于每种“crib”,我们使用滑动窗口在密文中寻找可能的匹配。

在寻找匹配的过程中,我们需要确保窗口内的字符与“crib”对应位置的字符都不相同,并且窗口内的字符不能形成其他“crib”。如果找到了一个匹配,我们将计数器加一,并继续寻找下一个匹配。

最后,返回计数器的值,即为密文中可能包含的“crib”的最大个数。

这种方法的时间复杂度取决于“crib”的数量和长度,以及密文的长度。在最坏的情况下,时间复杂度可能较高,但是在实际情况下,由于题目限制了“crib”的长度和数量,以及密文的长度,因此应该能够在合理的时间内解决问题。
创作类型:
原创

本文链接:谜 【题目描述】 二战期间,德军使用一种名为“Enigma”的密码机。这个密码机最终被盟军破解的关键

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share