前几次运行不通过原因:栈的定义这个没有放进去,自己在编写程序的时候由于是下载了老师提供的资源,然后在程序一开始就导入了Stack,因此自己测试的时候没有问题,oj上会出现程序异常;
from pythonds.basic.stack import Stack
【网页提交注意点】:提交的时候要把用到的数据结构的定义先放上去
1.有效的括号
思路:从左到右扫描括号串,最新打开的左括号应该匹配最先遇到的右括号,最早打开的左括号应该匹配最后一个右括号,次序反转;
- 生成一个空栈
- 从左到右依次扫描取括号
- 扫描到当前的符号看是什么括号,左括号入栈,匹配的右括号则出栈,不匹配则失败;
class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
s = input()
def matches(open,close):
opens="({[