📅  最后修改于: 2023-12-03 15:42:13.687000             🧑  作者: Mango
GATE CS Mock 2018年|第65章是一道经典的编程题目,常常被用来考察程序员们的编程能力。该题目分为两部分,分别是翻译和编程。翻译部分要求程序员将一个英文句子翻译成某种编码方式,编程部分要求程序员根据给出的编码方式进行解码,得到原始的英文句子。
你需要实现一个神秘的编码方式,它将英文中的字母按照一定规则转化为其他字符。具体的规则是将字母A映射成‘!',将Z映射成‘~’,其它的字母则在ASCII码表中顺次往后移3位。例如,字母B会被转换成字母E,字母C会被转换成字母F,以此类推。你的任务是根据给定的编码方式(参照下方的样例)将已经编码后的字符串解码为原始的英文句子。请注意,编码后的字符串可能包含空格及其他非字母字符,例如逗号,问号等。
*KSVVYMI*CSGSJG<JGM
DECRYPTED MESSAGE IS: CROSSWORD_PUZZLE
letter_to_code(letter)
对给定的字母做编码。如果是字母A,则被编码为'!';如果是字母Z,则被编码为'~';否则,被编码为字母表中该字母的后第三个字母。
参数:
letter
:需被编码的字母。返回值:
sentence_to_code(sentence)
将一个句子做编码。对句子中的所有字母依次做编码,将得到的编码字符串拼接起来。
参数:
sentence
:需被编码的英文句子。返回值:
code_to_letter(code)
对给出的编码进行解码。如果是'!',则解码为字母A;如果是'~',解码为字母Z;否则,解码为字母表中该字母的前第三个字母。
参数:
code
:需被解码的编码。返回值:
code_to_sentence(code)
将给出的编码字符串解码为原始的英文句子。对编码字符串中的每个编码依次解码,将得到的字符拼接起来。
参数:
code
:需被解码的英文句子的编码字符串。返回值: