华为机考入门python3--(36)牛客36-字符串加密

分类:字符串

知识点:

  1. 判断一个元素是否在集合中 if char not in key_set

  2. 计算字母差 index = ord(char) - ord('a')

题目来自【牛客】

python 复制代码
# 生成加密表
def generate_cipher_table(key):
    key_set = set()
    cipher_table = ""

    # 去重
    for char in key:
        if char not in key_set:
            cipher_table += char
            key_set.add(char)

    # 未出现的字母按照正常字母表顺序加入新字母表
    for char in "abcdefghijklmnopqrstuvwxyz":
        if char not in key_set:
            cipher_table += char

    return cipher_table


# 使用给定的密匙加密信息
def encrypt_message(cipher_table, message):
    result = ""
    for char in message:
        # 计算索引
        index = ord(char) - ord('a')
        encrypted_char = cipher_table[index]
        result += encrypted_char
    return result

# 输入
key = input().strip()
message = input().strip()

# 生成加密表和加密信息,然后输出结果
cipher_table = generate_cipher_table(key)
encrypted_message = encrypt_message(cipher_table, message)
print(encrypted_message)
相关推荐
薛定谔的算法2 小时前
JavaScript数组操作完全指南:从基础到高级
前端·javascript·算法
用户8356290780512 小时前
Python查找替换PDF文字:告别手动,拥抱自动化
后端·python
可爱的小小小狼2 小时前
算法:位运算
算法
星哥说事3 小时前
Python自学12 — 函数和模块
开发语言·python
VisionPowerful3 小时前
九.弗洛伊德(Floyd)算法
算法·c#
可爱的小小小狼3 小时前
算法:哈希表
redis·算法·散列表
点云侠3 小时前
解决Visual Studio 2022编译工程速度慢的问题
开发语言·c++·ide·算法·计算机视觉·visual studio
THMAIL4 小时前
深度学习从入门到精通 - 迁移学习实战:用预训练模型解决小样本难题
人工智能·python·深度学习·算法·机器学习·迁移学习
.鱼子酱4 小时前
机器学习 - 使用 ID3 算法从原理到实际举例理解决策树
算法·决策树·机器学习
和小胖11224 小时前
第一讲 Vscode+Python+anaconda 安装
python