📜  门| GATE-CS-2017(套装2)|问题 33(1)

📅  最后修改于: 2023-12-03 14:58:32.464000             🧑  作者: Mango

门| GATE-CS-2017(套装2)|问题 33

本篇题目是2017年GATE计算机科学门类考试的一道问题,题目编号为33,在套装2中。

问题描述:

给定一个文本,文本中包含一些数值和特殊字符,现在要求对这些数值从小到大进行排序。例如输入为"abc23dd3fd54",则输出应为"233455"。

本题可以使用编程语言进行解答。

以下为解答代码:


import re

str_input = input()

list_of_nums = re.findall(r'\d+', str_input) # 使用正则表达式匹配数字并存入列表,例如['23', '3', '54']

list_of_nums = list(map(int, list_of_nums)) # 将数字从字符串类型转为整型

list_of_nums.sort() # 对列表进行从小到大排序

output_str = ''.join(str(num) for num in list_of_nums) # 将列表中的数字转为字符串并拼接

print(output_str)

解答思路:

本题可以使用正则表达式进行匹配,找到文本中所有的数字并存入列表中。然后利用列表自带的sort()函数对列表进行排序,最后再将数字拼接为一个字符串作为输出。