#coding:utf-8
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return bool布尔型
#
class Solution:

    def isValid(self , s ):
        # write code here

        #process
        #init
        stack = []
        n = len(s)

        for i in range(0, n):
            # 对左边的符号进行匹配
            if s[i] == '(':
                stack.append(')')
            elif s[i] == '{':
                stack.append('}')
            elif s[i] == '[':
                stack.append(']')
            else:
                if len(stack) == 0: 
                #栈的顺序不对,比如第一个是']'
                    return False
                if stack[-1] == s[i]:
                    stack.pop()

        #是空栈直接返回True
        if len(stack) == 0:
            return True 
        return False
                
        

        return