输入:一组大于0的整数,不考虑非法输入,各个整数之间以(‘,’)分隔,输入字符串的总长度小于等于100个字节。
输出:排序后的值,各个整数之间以(‘,’)分隔。
样例输入:1,4,3,88,2,88,90,100
样例输出:1,4,88,90,100
num_str = str(input('输入字符串,字符串之间用逗号隔开:\n'))
num_list = num_str.split(',', -1)
num_list = set(num_list) #根据set函数特性去重
num_int_list = list(map(int, num_list))
print('去重后', num_int_list)
num_int_list.sort() #排序函数调用
print('排序后', num_int_list)
length = len(num_int_list)
n = 0
result = [] #结果放入到result列表中
while n < length-1:
if num_int_list[n] == num_int_list[n+1] - 1:
#star记录连续数字的开始下标
star = n
nums = num_int_list[star]
while (n+1<length and num_int_list[n] == num_int_list[n+1]-1):
n += 1
# end记录连续数字的末尾
end = n
#数字的末尾存入到nume
nume = num_int_list[end]
#将符合条件的连续数字的两段数字存入result
result.append(nums)
result.append(nume)
n += 1
else:
#将其余间断的数字直接存入result
gap = num_int_list[n]
result.append(gap)
n += 1
#判断n是否是最后一位数字,是则打印
if n == length-1:
last = num_int_list[n]
result.append(last)
print('最终结果', result)
注意判断下标,防止越界