mirror of
https://github.com/InternLM/InternBootcamp.git
synced 2026-04-19 12:58:04 +00:00
init-commit
This commit is contained in:
commit
18a552597a
3461 changed files with 1150579 additions and 0 deletions
107
internbootcamp/libs/cipher/AtbashCipherEnvironment.py
Executable file
107
internbootcamp/libs/cipher/AtbashCipherEnvironment.py
Executable file
|
|
@ -0,0 +1,107 @@
|
|||
from .BaseCipherEnvironment import BaseCipherEnvironment
|
||||
|
||||
class AtbashCipher:
|
||||
"""实现 Atbash 密码的类,用于字符串转换。
|
||||
|
||||
Atbash 密码是一种简单的替换密码,其中每个字母都被其在字母表中的反向对应字母所替换。
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
"""初始化 AtbashCipher 对象。"""
|
||||
pass
|
||||
|
||||
def transform(self, text: str) -> str:
|
||||
"""使用 Atbash 密码转换输入文本。
|
||||
|
||||
Args:
|
||||
text (str): 要转换的输入文本。
|
||||
|
||||
Returns:
|
||||
str: 应用 Atbash 密码后转换的文本。
|
||||
"""
|
||||
result = [] # 存储转换后的字符
|
||||
words = text.split() # 将文本拆分成单词
|
||||
|
||||
# 逐个处理每个单词
|
||||
for word in words:
|
||||
print(f"转换单词: {word}")
|
||||
transformed_word = [] # 存储单词中转换后的字符
|
||||
|
||||
# 转换单词中的每个字符
|
||||
for char in word:
|
||||
if char.isalpha(): # 检查字符是否为字母
|
||||
if char.islower():
|
||||
transformed_char = chr(219 - ord(char)) # 小写字母转换
|
||||
else:
|
||||
transformed_char = chr(155 - ord(char)) # 大写字母转换
|
||||
print(f" '{char}' -> '{transformed_char}'")
|
||||
else:
|
||||
transformed_char = char # 非字母字符保持不变
|
||||
print(f" '{char}' 保持不变")
|
||||
|
||||
transformed_word.append(transformed_char)
|
||||
|
||||
# 将单词中转换后的字符重新组合并添加到结果中
|
||||
result.append(''.join(transformed_word))
|
||||
|
||||
# 将转换后的单词重新组合成句子并返回
|
||||
return ' '.join(result)
|
||||
|
||||
|
||||
class AtbashCipherEnvironment(BaseCipherEnvironment):
|
||||
def __init__(self, *args, **kwargs):
|
||||
problem_description = ''
|
||||
super().__init__(problem_description, *args, **kwargs)
|
||||
|
||||
@property
|
||||
def cipher_name(self) -> str:
|
||||
"""返回密码的名称。
|
||||
"""
|
||||
return "AtbashCipher"
|
||||
def encode(self, text: str, **kwargs) -> str:
|
||||
"""使用 Atbash 密码对输入文本进行编码。
|
||||
|
||||
Args:
|
||||
text (str): 要编码的输入文本。
|
||||
|
||||
Returns:
|
||||
str: 应用 Atbash 密码后编码的文本。
|
||||
"""
|
||||
print("编码过程:")
|
||||
cipher = AtbashCipher()
|
||||
encode_text = cipher.transform(text)
|
||||
print(f"编码后的文本: {encode_text}")
|
||||
return encode_text
|
||||
|
||||
def decode(self, text: str, **kwargs) -> str:
|
||||
"""使用 Atbash 密码对输入文本进行解码。
|
||||
|
||||
Args:
|
||||
text (str): 要解码的输入文本。
|
||||
|
||||
Returns:
|
||||
str: 应用 Atbash 密码后解码的文本。
|
||||
"""
|
||||
print("解码过程:")
|
||||
cipher = AtbashCipher()
|
||||
decode_text = cipher.transform(text)
|
||||
print(f"解码后的文本: {decode_text}")
|
||||
return decode_text
|
||||
|
||||
def get_encode_rule(self, ) -> str:
|
||||
"""返回编码规则的自然语言描述。
|
||||
|
||||
Returns:
|
||||
str: 编码规则的自然语言描述。
|
||||
"""
|
||||
return "Atbash 密码的编码规则是将每个字母替换为其在字母表中的反向对应字母。例如,'A' 变成 'Z','B' 变成 'Y',依此类推。非字母字符保持不变。"
|
||||
|
||||
def get_decode_rule(self, ) -> str:
|
||||
"""返回解码规则的自然语言描述。
|
||||
|
||||
Returns:
|
||||
str: 解码规则的自然语言描述。
|
||||
"""
|
||||
return "Atbash 密码的解码规则是将每个字母替换为其在字母表中的反向对应字母。由于 Atbash 密码是对称的,解码过程与编码过程相同。例如,'Z' 变成 'A','Y' 变成 'B',依此类推。非字母字符保持不变。"
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue