Bootstrap

PTA - 字符替换

本题要求编写程序,将输入字符串中的大写英文字母按以下对应规则替换,其他字符不变。(提示:转换表用元组实现)

原字母对应字母
AZ
BY
CX
DW
......
XC
YB
ZA

输入格式:

在一行中输入字符串

输出格式:

在一行中给出替换完成后的字符串。

输入样例:

在这里给出一组输入。例如:

This is a pen.

输出样例:

在这里给出相应的输出。例如:

Ghis is a pen.

我的答案:

方法一:

string = input()
newString = ""

for i in string:
    if (i.isupper()):
        newi = chr(155 - ord(i))
    else:
        newi = i
    newString += newi

print(newString)

方法二:

转换类型有限,直接打表~(使用元组)

def replace_uppercase(text):
  """将输入字符串中的大写英文字母按规则替换,其他字符不变。

  Args:
    text: 输入字符串。

  Returns:
    替换完成后的字符串。
  """
  translation_table = (
      ('A', 'Z'), ('B', 'Y'), ('C', 'X'), ('D', 'W'), ('E', 'V'), ('F', 'U'),
      ('G', 'T'), ('H', 'S'), ('I', 'R'), ('J', 'Q'), ('K', 'P'), ('L', 'O'),
      ('M', 'N'), ('N', 'M'), ('O', 'L'), ('P', 'K'), ('Q', 'J'), ('R', 'I'),
      ('S', 'H'), ('T', 'G'), ('U', 'F'), ('V', 'E'), ('W', 'D'), ('X', 'C'),
      ('Y', 'B'), ('Z', 'A')
  )
  result = ''
  for char in text:
    if char.isupper():
      for original, replacement in translation_table:
        if char == original:
          char = replacement
          break
    result += char
  return result

text = input()
print(replace_uppercase(text))

 

方法三:

使用字典

text = input()
translation_dict = {
    'A': 'Z', 'B': 'Y', 'C': 'X', 'D': 'W', 'E': 'V', 'F': 'U', 'G': 'T', 'H': 'S',
    'I': 'R', 'J': 'Q', 'K': 'P', 'L': 'O', 'M': 'N', 'N': 'M', 'O': 'L', 'P': 'K',
    'Q': 'J', 'R': 'I', 'S': 'H', 'T': 'G', 'U': 'F', 'V': 'E', 'W': 'D', 'X': 'C',
    'Y': 'B', 'Z': 'A'
}
result = ''.join([translation_dict.get(char, char) for char in text])
print(result)

 

方法四:

使用内置函数

text = input()
translation_table = str.maketrans("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ZYXWVUTSRQPONMLKJIHGFEDCBA")
print(text.translate(translation_table))
  1. 获取用户输入:

    • text = input(): 获取用户输入的字符串。
  2. 创建翻译表:

    • translation_table = str.maketrans("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ZYXWVUTSRQPONMLKJIHGFEDCBA"): 使用 str.maketrans 方法创建了一个翻译表。
      • 第一个参数是包含所有需要替换的原始字母的字符串。
      • 第二个参数是包含对应替换字母的字符串。
      • 翻译表将原始字母映射到对应替换字母。
  3. 应用翻译表:

    • print(text.translate(translation_table)): 使用 translate 方法将翻译表应用于输入字符串 text,并将结果输出。

注意:

  • str.maketrans 方法只适用于单个字符的替换。
  • 翻译表中需要保证原始字母和替换字母的顺序一致
;