蒜头君最近迷上了写诗,他写了很多的诗行。

但是他自觉自己的作品不够好,因此不太想让别人知道诗句。

于是他灵机一动,发明了如下的方式来加密他的诗句字符串s:假设s仅由小写的英文字母组成, 根据以下规则加密成新的字符串 Cipher:

·开始时字符串 Cipher为空;

·按照字符串从左往右的顺序逐个遍历字符串s中的字符ch,并执行如下操作:

。首先将字符ch加入到字符串 Cipher;

。其次在字符串 Cipher加入任意(可能为0)个与字符ch不同的小写英文字母字符;

。最后,再将字符 ch加入到字符串 Cipher;

·遍历完s中的字符后,得到的字符串Cipher 即为加密的密文。

现在,蒜头君只留下了一串加密后的字符串Cipher,现在需要你还原出诗句字符串s,请你设计 一个解密算法,得到蒜头君的诗句s。

解密算法

解密算法的思路如下:

  1. 创建一个空字符串s,用于存储解密后的诗句。
  2. 遍历密文字符串Cipher的每个字符ch。
  3. 将ch加入到s中。
  4. 继续遍历Cipher,直到遇到与前一个字符不同的字符ch'。
  5. 将ch'加入到s中。
  6. 重复步骤4和步骤5,直到遍历完整个Cipher字符串。
  7. 返回s作为解密后的诗句。

具体的解密算法实现如下:

def decrypt(Cipher):
    s = ""
    prev_ch = ''
    for ch in Cipher:
        if ch != prev_ch:
            s += ch
            prev_ch = ch
    return s

使用示例

Cipher = 'aabbccddee'
s = decrypt(Cipher)
print(s)  # 输出:abcde

解密后的诗句为'abcde'。

诗歌解密算法:还原蒜头君的诗句

原文地址: https://www.cveoy.top/t/topic/pUb1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录