华为机考入门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)
相关推荐
Knight_AL20 小时前
深入解析 JVM 垃圾回收算法:经典 vs 新型 GC 算法
jvm·算法
起风了___20 小时前
Python 批量发邮件脚本:Excel 名单 + Jinja2 模板,带日志与防限流,163 邮箱实测可用
python·程序员
Mr.朱鹏20 小时前
大模型入门学习路径(Java开发者版)下
java·python·学习·微服务·langchain·大模型·llm
就起这名行不行20 小时前
一天训练即SOTA!LLaVA-1.5:多模态AI的“性价比之王”全解析
算法
yuer202520 小时前
我把 GPT 当成 Runtime 用:只用一个客户端,跑一个可控、可审计的投资决策 DEMO
算法
weixin_4215850120 小时前
PYTHON中的索引操作
python
鲅鱼饺子20 小时前
PyTorch|BatchNorm 的两种方差
算法
栀秋66620 小时前
面试常考的最长递增子序列(LIS),到底该怎么想、怎么写?
前端·javascript·算法
_Li.20 小时前
机器学习-特征选择
人工智能·python·机器学习
l1t20 小时前
在duckdb 递归CTE中实现深度优先搜索DFS
sql·算法·深度优先·duckdb·cte