Step 0: Take an empty string, named output_string.
Step 1: Take an empty sequence_list.
Step 2: Take the element (number) at the start of number_list, see if it can be added to sequence_list, then add the number to the sequence_list and remove it from number_list, and repeat Step 2. Otherwise, go to Step 3.
Step 3: Compress sequence_list to a string, and add it to output.
Step 4: If number_list is not empty, go to Step 1 again. Otherwise, display the output_string.
def numlist_string(numlist):
# If the length of list is 1 then we don't need to write it in the
# form x-y, because that increases the number characters in string
if(len(numlist) == 1):
return "{}".format(numlist[0])
else:
numlist_last = len(numlist) - 1
return "{}-{}".format(numlist[0], numlist[numlist_last])
def numlist_compress(numlist):
if(len(numlist) == 0):
return []
compressed_list = []
for i in range(len(numlist)):
if(numlist[i] != numlist[0] + i):
# Sequence is broken
# Splitting up list into sequence and remaining
req_list = numlist[0 : i]
rem_list = numlist[i : ]
# Getting sequence list as a string
numlist_s = numlist_string(req_list)
# Adding sequence string to the list of strings
compressed_list.append(numlist_s)
# Compressing the remaining list and adding that to previously
# generated sequence string
compressed_list.extend(numlist_compress(rem_list))
return compressed_list
# Whole list is a sequence
numlist_s = numlist_string(numlist)
compressed_list.append(numlist_s)
return compressed_list
if __name__ == '__main__':
number_list = [1,2,3,4,5,9,10,11,12,18,19,40]
sequence_list = numlist_compress(number_list)
sequence_string = ','.join(sequence_list)
print(sequence_string)
在用python编写一个脚本来完成这个任务之前,让我们看看如何手动完成这个任务。让我们按照给定的算法,看看它是如何工作的。你知道吗
例如,让我们对有问题的列表进行一次迭代。你知道吗
number_list = [1,2,3,4,5,9,10,11,12,18,19,40]
步骤0后:
output_string = ""
步骤1之后:
sequence_list = []
第2步后:(迭代5次)
因为我们的下一个元素是9,我们无法将其添加到序列列表中,所以我们转到步骤3
第3步之后
第4步
因为我们的
number_list
不是空的,所以我们返回到步骤1,整个过程再重复3次。在这之后,我们得到以下output_string
output_string = "1-5,9-12,18-19,40"
这是我们需要的输出。所以,我们结束了。你知道吗
相同的Python脚本:
相关问题 更多 >
编程相关推荐