作者:mobiledu2502869077 | 来源:互联网 | 2022-12-26 16:39
(使用python 3)这是我给出的任务:
给定一个数字列表,查找并打印所有大于其左边邻居的元素.
示例输入
1 5 2 4 3
示例输出
5 4
这是我的代码:
# creates a list out of the input given as '# # # # # #...'
a = [int(s) for s in input().split()]
for i in a[1:]: #skips the first since it has no "left neighbor"
if i > a[a.index(i) - 1]: #checks if 'i' is greater than element before 'i'
print(i, end=' ')
我的问题是它适用于我所做的所有测试,除非我给它一个列表a[0] == a[-1]
然后它忽略列表中等于该整数的所有元素.
例如:
3 5 2 3 1 2 3 1 3
--> 5
我一直很难找到这个bug!如果这个问题没有得到很好的解决,请原谅.我是第一次在stackoverflow上问一个问题.
1> Mushif Ali N..:
试试这个:
for i in range(1, len(a)):
if a[i] > a[i-1]:
print(a[i], end=' ')
结果:
3 5 2 3 1 2 3 1 3
--> 5 3 2 3 3
for循环从i = 1开始,所以应该没问题.