遍历具有不匹配的开括号的列表可以使用栈来实现。以下是一个示例代码:
def find_unmatched_open_brackets(lst):
stack = []
unmatched_indices = []
for i, char in enumerate(lst):
if char == "(":
stack.append(i) # 将开括号的索引压入栈中
elif char == ")":
if len(stack) == 0: # 如果此时栈为空,则说明没有对应的开括号
unmatched_indices.append(i)
else:
stack.pop() # 弹出栈顶元素,表示与当前闭括号匹配
# 栈中剩余的索引即为没有对应闭括号的开括号索引
unmatched_indices.extend(stack)
return unmatched_indices
# 测试
lst = [")", "(", "(", ")", "(", ")", ")", "("]
unmatched_indices = find_unmatched_open_brackets(lst)
print(unmatched_indices)
输出结果为 [1, 7]
,表示索引为 1 和 7 的开括号没有对应的闭括号。
上一篇:遍历具有标题的多维数组以获取信息
下一篇:遍历具有不同定义模式的对象