有效括号序列

给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列 括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。

数据范围:字符串长度 0≤n≤10000 要求:空间复杂度 O(n),时间复杂度 O(n)

python没有栈,所以我用数组,当([{时,存入,当字符为)]}时取出,题目不难

# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return bool布尔型
#
class Solution:
    def isValid(self , s: str) -> bool:
        # write code here
        stri = ''
        if len(s)%2 == 1:
            return False
        for c in s:
            if (c == '(') | (c == '[') | (c == '{'):
                stri += c
            elif (c == ')') | (c == ']') | (c == '}'):
                if len(stri) == 0:
                    return False
                if (c == ')') & (stri[len(stri)-1] != '('):
                    return False
                if (c == ']') & (stri[len(stri)-1] != '['):
                    return False
                if (c == '}') & (stri[len(stri)-1] != '{'):
                    return False
                stri = stri[:-1]
        if len(stri) != 0:
            return False
        return True