📜  门| GATE CS Mock 2018年|第65章(1)

📅  最后修改于: 2023-12-03 15:42:13.687000             🧑  作者: Mango

门 | GATE CS Mock 2018年|第65章

简介

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:需被编码的字母。

返回值:

  • 如果字母是A,则返回'!';
  • 如果字母是Z,则返回'~';
  • 否则,返回字母表中该字母的后第三个字母。

sentence_to_code(sentence)

将一个句子做编码。对句子中的所有字母依次做编码,将得到的编码字符串拼接起来。

参数:

  • sentence:需被编码的英文句子。

返回值:

  • 由句子中所有字母的编码拼接起来,形成的编码字符串。
解码部分

code_to_letter(code)

对给出的编码进行解码。如果是'!',则解码为字母A;如果是'~',解码为字母Z;否则,解码为字母表中该字母的前第三个字母。

参数:

  • code:需被解码的编码。

返回值:

  • 如果是'!',则返回字母A;
  • 如果是'~',则返回字母Z;
  • 否则,返回字母表中该字母的前第三个字母。

code_to_sentence(code)

将给出的编码字符串解码为原始的英文句子。对编码字符串中的每个编码依次解码,将得到的字符拼接起来。

参数:

  • code:需被解码的英文句子的编码字符串。

返回值:

  • 由编码字符串中每个编码解码后拼接起来,形成的原始英文句子。