一、多个并列的if条件句和if-elif的区别
多个并列if条件句
:程序会对每一个if条件句都执行。判断条件真假,为真时,执行if后面的语句块;然后再接着对下一个if条件句进行判断,再执行
if-elif
:不是并列关系,依次判断,当条件为真执行语句块后,退出判断,不会再执行接下来的elif语句。
原文链接:多个并列的if条件句和if-elif的区别
二、python中的栈
定义:栈是一个特殊的有序列表,其插入和删除操作都在一端(栈顶)进行。
栈的接口:
push():入栈, pop():出栈, isempty():判断是否是空栈, length():栈的长度, gettop():取栈顶元素
s = []
#入栈
s.append()
#出栈
s.pop()
#判断是否为空栈
not s
#栈的长度
len(s)
#取栈顶元素
s[-1]
原文链接:python中的栈
三、solution
class Solution:
def isValid(self, s: str) -> bool:
stack = []
lookup = {"(": ")", "{": "}", "[": "]"}
for parenthese in s:
if parenthese in lookup: #for example s = "{[]}", just "{[" will be appended to stack
stack.append(parenthese)
elif len(stack) == 0 or lookup[stack.pop()] != parenthese: #"[{]}", while parenthese is ], stack.pop is {
return False
# add len(stack) != 0 to avoid situation like s = "]"
# avoid s = "["
return len(stack) == 0