题目分析

🛠 任务描述
你的任务是解密一个凯撒密码加密的字符串,其中每个字母的解密位移量是变化的:
- 第一个字母使用用户输入的初始位移量(Caesar Shift)解密。
- 第二个字母的解密位移量等于前一个字母解密后的数值(以
A=0, B=1, ..., Z=25
为基准)。
- 后续字母按照相同逻辑进行解密。
解题逻辑
- 程序启动
- 打印
"DECRYPT STRING"
作为程序启动提示。
- 获取用户输入
- 输入加密字符串:
- 如果输入为空 (
""
),打印"Empty encrypted string."
并退出。 - 输入初始位移量:
- 必须在
0-25
之间。 - 如果超出范围,打印
"Invalid caesar shift."
并退出。
这里可以使用python 中if not
的语句的判断
- 解密逻辑
- 使用公式:
ENCRYPTED
是当前字符的数值(A=0, B=1, ..., Z=25
)。SHIFT
是当前的解密位移量。- 解密每个字符:
- 第一个字符使用用户输入的初始位移量解密。
- 第二个字符及后续字符:
- 上一个已解密字符的数值用作当前字母的解密位移量。
- 忽略空格,但保持原有空格位置。
这里可以使用python中String.replace(” ”,””)
的方法来移除空格
其中:
- 输出解密后的字符串
可以去看一下 的代码,复制过来以后 写再一个函数里面就好了。问题不大,秒了