无法理解此功能的作用

Cant understand what this function does

def is_balanced(input_str): s = 列表()

for ch in input_str:
    if ch == '(':
        s.append(ch)
    if ch == ')':
        if not s:
            return False
        s.pop()
return not s

谁能解释一下“if ch == ')':”这一行之后到底发生了什么?

if not s: 检查列表是否为空,如果列表为空则执行里面的条件。

假设您在输入中提供 ())()(),因此:

-> 第 0 个索引首先将 ( 添加到 s

-> 对于第一个索引(即 )):它将首先检查 s 是否为空,因为这里我们在 s 中有 ( 所以if 条件不会执行,然后继续从列表中弹出值。 (注意现在列表是空的)

-> 到达第二个索引(即 )):它将首先检查列表是否为空,因为列表为空它将 return False