python判断括号是否匹配

输入一个表达式(长度小于100),该表达式可以包括开括号、闭括号、数字、符号和字母,例如:
Y = 4 * 5 + (x 7) * 10
请编写一个程序来查找不平衡的括号。在一行中输出表达式,并在表达式下面标记不平衡的括号。不平衡的左括号被标记为“$”,不平衡的右括号被标记为“?”。
输出的例子:
((A+B-7*(6-5)
$$
)(r+5-(e-6))/9-8)(
? ?$


a='((A+B-7*(6-5)'
stack=[]
error=[]
for i,j in enumerate(a):
    if j=='(':
        stack.append([i,j])
    if j==')':
        if stack:
            if stack[-1][-1]=='(':
                stack.pop()
            else:
                error.append((i,1))
        else:
            error.append((i,1))
while stack:
    temp=stack.pop()
    if temp[-1]=='(':
        error.append((temp[0],2))
    else:
        error.append((temp[0],1))
L=[' ' for _ in range(len(a))]
for i in error:
    if i[-1]==1:
        L[i[0]]='?'
    else:
        L[i[0]]='$'
print(a)
print(''.join(L))

(r+5-(e-6))/9-8)(
不应该是只有倒数第二个和倒数第一个不平衡吗,怎么有3个不平衡