介绍
谜是第二次世界大战中使用的首批机电转子密码机之一。这意味着在对单个字母进行编码后,它将更改下一个字母的密钥。由于巨大的钥匙空间,德国人认为这是坚不可摧的。甚至暴力破解几乎是不可能的。但是,Enigma中存在设计错误。加密字母永远不会成功。这意味着该字母A
可以加密除该字母以外的所有字母A
。
让我们以编码消息为例:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
典型的德语单词是WETTERBERICHT
或英语的天气预报。通过上面的原理,我们可以确定单词可能在哪些位置:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
这是不可能的,因为I
无法对其进行加密,因此我们继续前进1个位置:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
这也是不可能的,因此我们再次移动另一个位置:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
这又是不可能的。实际上,第一个可能的发生WETTERBERICHT
是:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
0123456789012345678901234567890123456789012345678901234567890123
^
13
因此,我们返回第一个可能出现的0索引位置,即13。
任务
- 给定一条已编码的消息和一个单词,找到第一个可能出现的索引。
- 假设仅使用基本的大写字母字符(
ABCDEFGHIJKLMNOPQRSTUVWXYZ
)。 - 如果未发现任何情况,则可以输出任何负整数,字符或什么都不输出(例如
-1
,X
)。 - 输入可以被接受为参数,可以使用单独的换行符,列表或其他任何形式。
- 这是代码高尔夫球,因此以最少的字节提交为准!
测试用例
Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT
Output: 13
Input: ABCDEFGHIJKL, HELLO
Output: 0
Input: EEEEEEEEEEEE, HELLO
Output: -1
Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND
Output: 11
Input: HKKH, JJJJJ
Output: -1
E
永远不会导致E
。这就是整个挑战所要解决的。