我试图在列表中找到一行中最大的数字序列,我可以输入。我是这样做的:
list = []
count_max_numbers = 0
while True:
x = int(input('число: '))
if x == 0:
break
list.append(int(x))
max_number = max(list)
for i in list:
if i != max_number:
pass
else:
count_max_numbers += 1
current_result = 0
max_result = 0
last_seen = list[0]
longest_digit = 0
for i in list:
if i == last_seen:
current_result += 1
else:
if current_result > max_result:
max_result = current_result
longest_digit = i
last_seen = i
current_result = 1
if current_result > max_result:
max_result = current_result
longest_digit = i
print(f'{list}')
print(f'max number: {max_number} reapeted{count_max_numbers} times')
print(f'the biggest series: {longest_digit} repeated {max_result} times')
这仅适用于列表中的第一个数字。但我需要处理整个列表。 例如,如果输入(1,2,3,3,3,5,55) 它需要获得输出:最大系列:3次重复4次 我仍然对{longest_digit}的输出有问题,这是不正确的
试试这个:
下面是一个简单的算法:
初始化
longest = None
、longest_digit = None
、current = 0
、previous_digit
和current_digit = None
然后,对于列表中的每个
item
:current_digit
,则将current
增加1李>current > longest
,则设置longest = previous_digit
和longest_digit = item
current
重置为1
,将current_digit
重置为item
previous_digit
设置为item
在列表的末尾,也执行上面的步骤(A)
现在你应该在{}(4)和{}(3)中找到答案
我对此的建议是使用
dictionary
一旦我们得到字典,我们就使用值对其进行排序
相关问题 更多 >
编程相关推荐