首页 > 其他分享 >PTA - 字符替换

PTA - 字符替换

时间:2024-07-28 18:55:33浏览次数:11  
标签:字符 text PTA char 字符串 table translation 替换

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

原字母对应字母
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 方法只适用于单个字符的替换。
  • 翻译表中需要保证原始字母和替换字母的顺序一致

标签:字符,text,PTA,char,字符串,table,translation,替换
From: https://blog.csdn.net/2303_76707991/article/details/140533655

相关文章

  • 【代码随想录训练营第42期 Day10打卡 LeetCode 232.用栈实现队列 225. 用队列实现栈 2
    目录一、做题心得二、题目与题解题目一:232.用栈实现队列题目链接题解题目二:225.用队列实现栈题目链接题解题目三:20.有效的括号题目链接题解题目四:1047.删除字符串中的所有相邻重复项 题目链接题解三、小结一、做题心得今天是代码随想录训练营打卡的第1......
  • Python科研武器库 - 字符串操作 - 字符串分隔 split()、rsplit()
    使用场景:在科研中,数据样本的命名方式往往包含着对应的信息,例如,一张人脸图片34_anger_1.png,文件名中包含着该图片中主体在数据集中的ID、人脸表情种类、以及该图片是同类型第几张图片。使用python批量处理数据时,从文件名中获取对应信息也是很关键的一步,然后才能基于这些信息进......
  • Java基础10:拓展运算符、字符串连接符、三元运算符
    扩展运算符publicstaticvoidmain(String[]args){ inta=10; intb=20; a+=b;//a=a+b System.out.println(a+":"+b);}字符串连接符"+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。//字符串......
  • 8:Python字符串的魔法属性
    test="alex"v=test.capitalize()#首字母的大写print(v)test1="alEx"v1=test1.casefold()#所有字母变小写print(v1)test2="alEx"v2=test2.center(20,"*")#设置宽度,并将内容居中,20代指总长度,*代指空白位置填充且只能填一个字符print(v2)test3="alexralexr"v3=te......
  • 字符函数和字符串函数(1)
    在编程过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,c语言标准库提供了一系列库函数。一、字符分类函数c语言中有一系列函数是专门做字符分类的,也就是一个字符是属于什么类型的字符。  这些函数的使用都需要包含一个头文件是ctype.h 这些函数使用方法非常......
  • Django Haystack 多值字符串分面——未知字段tags_exact
    我网站上的内容用可变长度的字符串标记,我想对这些标记进行分面搜索。例如,一个故事可能有标签“内战”、“格兰特将军”和“葛底斯堡之战”。我希望能够对精确的非标记化字符串进行分面搜索。在我的search_index.py中,我定义了:tags=MultiValueField(faceted=True,in......
  • Python终端输出彩色字符方法
    colorama是一个python专门用来在控制台、命令行输出彩色文字的模块,完全兼容linux和windows各个版本。 1.Python3.x中安装colorama模块: pipinstallcolorama'''可用格式常数:【颜色RED,GREEN都需要大写】Fore:BLACK,RED,GREEN,YELLOW,BLUE,MAGENTA,CYAN,WHI......
  • js切割字符串指定个数?
    如果你想剪切字符串的开头几个字符,可以使用JavaScript的substring()方法或者slice()方法。使用substring()方法:letstr="Hello,World!";letcutLength=5;//要剪切的字符数 letnewStr=str.substring(cutLength);console.log(newStr);//输出:",Worl......
  • 从混合字符串中查找 pandas 中的字符数
    我正在寻找pandasdf中混合列中字母的数量。如果字母数量超过2,请保留最接近数字的两个字母。我尝试使用下面的方法获取计数df['count']=len(re.findall('[a-zA-Z]',a['MyCOlumn']))但出现以下错误:TypeError:Expectedstringorbytes-像对象输......
  • 洛谷P1098 [NOIP2007 提高组] 字符串的展开
    题目链接:-P1098[NOIP2007提高组]字符串的展开题目叙述:[NOIP2007提高组]字符串的展开题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于d-h或者4-8的字串,我们就把它当作一种简写,输出时,用连续递增的字......