【发布时间】:2021-12-05 23:33:56
【问题描述】:
我正在尝试执行以下 Python 代码:
arr = [3, 4, 1, 6, 2]
n = len(arr)
res = [1] * n
stack = [-1]
#left
for i in range(n):
print(i)
while len(stack) > 1 and arr[stack[-1]] < arr[i]:
stack.pop()
res[i] += i - stack[-1] - 1
stack.append(i)
虽然我没有在代码中更改 i 的值,但它打印如下:
0
1
0
2
3
2
1
4
知道它为什么会这样吗? Python 3.6.9 是编译器。
【问题讨论】:
-
这段代码在做什么?请不要让我们破译代码意图。
-
@Jab 我认为,这段代码在做什么与这里无关。
标签: python python-3.x for-loop stack