分类:字符串
知识点:
-
判断一个元素是否在集合中 if char not in key_set
-
计算字母差 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)