📅  最后修改于: 2023-12-03 15:28:48.234000             🧑  作者: Mango
这是 "门|门 IT 2006" 的第 50 题,是一道程序设计题目。在这道题目中,我们需要对给定的输入进行一定的处理,并输出给定的结果。
给定一个字符串,表示一个整数序列,序列中的数字是以空格分隔的。
需要对这个序列进行如下处理:
以字符串的形式输入一个整数序列,其中数字以空格分隔。
在第一行输出去重并排序后的数字,数字之间用空格隔开。
在接下来的若干行中,每行输出一组符合条件的“大数+小数=100”形式的数字,大数和小数之间用"+"号连接,大数和小数与等式之间用"="号连接。
3 4 4 2 8 7 12 19 20 1
1 2 3 4 7 8 12 19 20
1+99=100
2+98=100
3+97=100
4+96=100
7+93=100
8+92=100
12+88=100
题目与数据处理密切相关。
输入的字符串可以用 split
方法将其拆分成字符串数组,进而转化为数字数组。
数字数组去重可以使用 set 去重。
数字数组排序可以使用数组的 sort
方法。
检查数字数组中的数字是否可以组成符合要求的数字对可以使用两层循环遍历的方法。
输出时,建议使用字符串拼接方法将符合条件的数字对转化为字符串后输出。
def main(input_str: str) -> str:
nums = input_str.strip().split()
nums = list(map(int, nums))
nums = sorted(set(nums))
res = []
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == 100:
res.append(f"{nums[i]}+{nums[j]}=100")
return f"{' '.join(map(str, nums))}\n{'\n'.join(res)}"