华为机考入门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)
相关推荐
cheems95272 分钟前
[Java EE]多线程模式下容器的选择
算法·哈希算法
CryptoRzz6 分钟前
如何高效对接美股实时行情?StockTV API 实战集成指南
java·python·flask·区块链·maven·symfony
木斯佳7 分钟前
HarmonyOS实战(源码教学篇)— 深入浅出鸿蒙特性【跨端迁移-应用接续】
华为·harmonyos
Jackson@ML8 分钟前
2026最新版Python 3.14.2安装使用指南
开发语言·python
飞Link12 分钟前
指令调整阶段中的通用模型蒸馏、模型自我提升和数据扩充
python·算法·数据挖掘
qunaa010112 分钟前
轮胎识别号码检测▸基于YOLO11-ContextGuideFPN的高精度检测模型实现与部署
python
Channing Lewis14 分钟前
正则灾难性回溯(catastrophic backtracking)
开发语言·python
智慧化智能化数字化方案15 分钟前
华为项目管理——解读华为客户重大项目管理流程概述【附全文阅读】
华为·华为项目管理·华为产品战略规划·华为客户重大项目管理流程·华为项目管理高级培训·华为研发pmo的能力·战略级项目管理
wen__xvn32 分钟前
基础算法集训第01天:线性枚举
数据结构·c++·算法
nju_spy35 分钟前
力扣每日一题 2026.1
算法·leetcode·二分查找·动态规划·最小生成树·单调栈·最长公共子序列