题目转载:http://python.wzms.com/s/1/55
已知一个数组,这个数组的一个平台(Plateau)就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在 1,2,2,3,3,3,4,5,5,6中1,2-2,3-3-3,4,5-5,6都是平台。试编写一个程序,接收一个数组,把这个数组最长的平台找出 来。在上面的例子中3-3-3就是最长的平台。
第一行有一个整数n(n <= 1000),为数组元素的个数。第二行有n个整数,整数之间以一个空格分开。
输出最长平台的长度。
代码:
n = int(input()) array_list = list(map(int, input().split())) # 第一步:将输入的数组切割成多个具有连续相同元素的字符串,并存入到列表中 sub_number = '#' sub_number_list = [] for index in range(len(array_list)-1): sub_number = sub_number + str(array_list[index]) if array_list[index] != array_list[index + 1]: sub_number_list.append(sub_number[1:]) sub_number = '#' if index == len(array_list)-2: sub_number = sub_number + str(array_list[index + 1]) sub_number_list.append(sub_number[1:]) # 第二步:把每个子字符串的长度存入到列表中,并打印出最大的子字符串长度 sub_number_len = [] for Plateau in sub_number_list: sub_number_len.append(len(Plateau)) print(max(sub_number_len))
运行结果: