Lazy loaded image
Task 7 - Full Cypher
Words 440Read Time 2 min
2025-3-31

题目分析

notion image

🛠 任务描述

你的任务是解密一个凯撒密码加密的字符串,其中每个字母的解密位移量是变化的
  1. 第一个字母使用用户输入的初始位移量(Caesar Shift)解密。
  1. 第二个字母的解密位移量等于前一个字母解密后的数值(以 A=0, B=1, ..., Z=25 为基准)。
  1. 后续字母按照相同逻辑进行解密。

解题逻辑

  1. 程序启动
      • 打印 "DECRYPT STRING" 作为程序启动提示。
  1. 获取用户输入
      • 输入加密字符串
      • 如果输入为空 (""),打印 "Empty encrypted string."并退出。
        • 这里可以使用python 中 if not 的语句的判断
      • 输入初始位移量
        • 必须在 0-25 之间。
        • 如果超出范围,打印 "Invalid caesar shift."并退出。
  1. 解密逻辑
    1. 这里可以使用python中 String.replace(” ”,””) 的方法来移除空格
      • 使用公式
        • 其中:
        • ENCRYPTED 是当前字符的数值(A=0, B=1, ..., Z=25)。
        • SHIFT 是当前的解密位移量。
      • 解密每个字符
        • 第一个字符使用用户输入的初始位移量解密。
        • 第二个字符及后续字符
          • 上一个已解密字符的数值用作当前字母的解密位移量
      • 忽略空格,但保持原有空格位置。
  1. 输出解密后的字符串
 

💡
可以去看一下 的代码,复制过来以后 写再一个函数里面就好了。问题不大,秒了