给定一个包含整数的变量与规定的数字0(零)在变量中是一个数字与另一个数字之间的分隔符。这些数字将按数字本身中的数字进行分隔和排序。在此之后,来自排序的数字将被重新联接,而不是以整数的形式与输出分开。创建一个方法/函数,该方法/函数只接受一系列数字的参数,并生成如上所述的输出。
def sort(nums):
for i in range (15):
minpos = 1
for j in range (i,6):
if nums[j] < nums[minpos]:
minpos = j
temp = nums[i]
nums[i] = nums[minpos]
nums[minpos] = temp
nums = [5,9,5,6,5,6,0,1,5,9,4,6,6,0,5,6]
sort(nums)
print(nums)输出应为55566914566956,但实际输出为5、5、5、5、6、6、9、0、1、5、9、4、6、6、0、6
发布于 2019-10-30 21:38:24
您可以尝试以下函数:
def sort(nums):
curr = []
ret = ''
for i in nums:
if i == 0:
ret += ''.join(map(str, sorted(curr)))
curr = []
else:
curr.append(i)
ret += ''.join(map(str, sorted(curr)))
return ret
print(sort([5,9,5,6,5,6,0,1,5,9,4,6,6,0,5,6]))打印:
55566914566956发布于 2019-10-30 21:43:07
def sort(nums):
result = list()
sub_array = list()
for i in nums:
if i == 0:
# sort sub array and append it to result
sub_array.sort()
result.extend(sub_array)
sub_array = list()
else:
sub_array.append(i)
# ensure that the last sub_array is also treated
sub_array.sort()
result.extend(sub_array)
return result
nums = [5,9,5,6,5,6,0,1,5,9,4,6,6,0,5,6]
result = sort(nums)
print(result)最简单的方法是遍历列表并创建一个数字子数组,直到找到一个'0‘。此时,只需对子数组进行排序,将其附加到结果列表中,然后继续,直到输入字符串的末尾。
https://stackoverflow.com/questions/58626457
复制相似问题