您的朋友不太擅长使用计算机,所以有人打扰他键盘上的字母(az)成为一个恶作剧。当他坐下来尝试在键盘上键入自己的名字时,他意识到字母被打乱了,要求您的帮助。
您很聪明,所以您知道,如果他键入他的名字,然后重复输入屏幕上出现的内容而不是他的名字,他最终将成功输入他的名字。您也很友善并重新排列了按键,但想知道要成功旋转几圈。
您的任务是编写给定字母改组的程序或函数,而朋友的名字将计算转数。
输入详细信息:
- 以方便您的语言的结构形式输入了两个字符串作为输入。
- 第一个字符串是按照旧字母的字母顺序列出的新小写字母的列表。(第一个字符位于的位置
a
,最后一个字符位于的位置z
。)字符串中总是会发生一些变化。 - 第二个字符串是名称。它可以包含任何可打印的ascii字符,但是只有大写和小写字母字符会被打乱。这个名字本身可能不会被改组。
输出详细信息:
- 输出是单个整数,最小所需匝数。换行符是可选的。
例子:
输入:(
'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'
更改了d,e,f个位置)
输出:(
3
显示的名称是:Mr. John Fod
=> Mr. John Eof
=> Mr. John Doe
)
输入:
'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'
(ROT13密码)
输出:(
2
任何包含字母的输入名称都会2
四舍五入以产生原始名称。)
输入:
'aebcdjfghiqklmnopzrstuvwxy' 'John Doe'
输出:
140
这是代码高尔夫球,因此最短的条目将获胜。
EOF
称赞!
aebcdjfghiqklmnopzrstuvwxy
输出为1260Mr John Doe
)。这是最大可能的-它由4、5、7、9阶的循环组成(并且没有变化a
),每个循环中至少包含一个字母的每个名称都将产生1260。而且我想将字母本身作为输入或使用不受影响的名称也很重要。