凯撒密码

题目描述
小杨最近在图书馆发现了一本关于密码学的有趣书籍,里面介绍了一种古老的密码--凯撒密码。这种密码很简单:每个字母都按照字母表的顺序往后移动固定位数。比如移动3位,A就变成D,B变成E,C变成F……到了Z之后又回到A,Z就变成了C。
小杨现在得到了三行重要的信息:
- 第一行:已知的原始消息(明文)
- 第二行:已知的加密后的消息(密文),它是用凯撒密码对第一行加密得到的
- 第三行:需要解密的密文,它和前面使用了相同的移动位数
默认小猫角色和白色背景,请你帮助小杨,先根据前两行计算出字母移动了多少位,然后用这个规律破解第三行的密文,找到原始消息并把结果存储在变量ans 中。
输入描述
新建变量str1,表示已知的明文(全大写字母)
新建变量str2,表示对应的密文(全大写字母)
新建变量str,表示需要破解的密文(全大写字母)。

输出描述
新建变量ans,用于存储最终的结果,表示破解后的明文。

原理说明:
从前两行可以看出:
- A→D(向后移动3位)
- B→E(向后移动3位)
- 以此类推
所以移动位数是3。对第三行密文,我们把每个字母向前移动3位:
- W 向前移动3 位变成T
- K 向前移动3 位变成H
- 以此类推
最终得到:
THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
输入样例1
str1 = ABCDEFGVWXYZ
str2 = DEFGHIJYZABC
str = WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ
输出样例1
ans = THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
输入样例2
str1 = ABC
str2 = DEF
str = JRRG
输出样例2
ans = GOOD
注意事项
- 变量名的拼写(包括大小写)要和题目完全一致。
- 输入变量直接赋值即可,无需使用"询问并等待"积木块。
- 输出结果存放在对应变量中即可,无需使用"说…"或"说…,2 秒"积木块。