#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#

# @param s string字符串 
# @return bool布尔型
#
class Solution:
    def isValid(self , s: str) -> bool:
        # write code here
        left=["(","[","{"]
        right=[")","]","}"]
        if s=='' or s[0] not in left or len(s)%2!=0:
            return False
        nl=[]
        rn=0
        rl=0
        for i in range(len(s)): 
            if i >0 and s[i] in right:
                rn+=1
                if left[right.index(s[i])]==nl[-1] :
                    nl.pop(-1)
                    continue
                else: return False
            rl+=1
            nl.append(s[i])
        if rn==rl: return True
        else:return False