分类:字符串
知识点:
判断一个元素是否在集合中 if char not in key_set
计算字母差 index = ord(char) - ord('a')
题目来自【牛客】
- # 生成加密表
- 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)