编写程序,输入一行若干个整数(小于10个),整数间用半角逗号进行分隔,输出它的区间范围,每个区间边界用半角减号分隔,区间间用半角逗号分隔。 【注意】输入、输出各占一行,运行效果应如下所示(第1行为输入,数据间用半角空格分隔,第2行为输出),格式错误算结果错误。 1 2 3 4 5 6 7 8 10 21 22 23 1-8,10,21-23;
时间: 2023-05-27 21:03:15 浏览: 106
出租车起步价14元,含3公里 起步价之后,每公里2.5元 晚上11点之后(含),次日6点前(不含)起步价18元,含3公里 晚上起步价之后,每公里3元 10公里之
```python
num_list = list(map(int, input().split(",")))
num_list.sort()
result = []
start_num = num_list[0]
for i in range(1, len(num_list)):
if num_list[i] != num_list[i-1]+1:
end_num = num_list[i-1]
if start_num == end_num:
result.append(str(start_num))
else:
result.append(str(start_num)+"-"+str(end_num))
start_num = num_list[i]
if start_num == num_list[-1]:
result.append(str(start_num))
else:
result.append(str(start_num)+"-"+str(num_list[-1]))
print(",".join(result))
```
简析:
首先将输入的字符串转成整数列表,并排序。
接着定义一个空列表用于存储结果,定义一个变量`start_num`用于保存当前连续区间的起始数。
然后遍历整数列表,如果当前数不是与前一个数连续的,则找到一个连续的区间,并利用`str`函数将区间的起始数和结束数转成字符串形式存入结果列表。重新设置`start_num`为当前数。
最后,循环结束后,最后一段连续的区间也需要加入到结果列表中。
最后将结果列表转成用逗号分隔的字符串输出即可。
阅读全文