1日あたり1つのアルゴリズム(6日目)有効なかっこ


‘(’,’)’,’{’,’}’,’[’,’]’のみを含む文字列を与え,文字列が有効であるか否かを判断する.
有効な文字列は次のとおりです.
左かっこは同じタイプの右かっこで閉じる必要があります.左かっこは正しい順序で閉じなければなりません.注意空の文字列は有効な文字列とみなされます.
例1:
入力:「()」出力:true例2:
入力:「()[]{}」出力:true例3:
入力:「(」出力:false例4:
入力:「([)]出力:false例5:
入力:{[]}出力:true
アルゴリズムは以下のように実現される.
class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        tmplist = []
        for x in s:
            try:
                if x == '(' or x == '{' or x == '[':
                    tmplist.append(x)
                elif x == ')':
                    if tmplist[-1] == '(':
                        tmplist.pop(-1)
                    else:
                        raise Exception
                elif x == '}':
                    if tmplist[-1] == '{':
                        tmplist.pop(-1)
                    else:
                        raise Exception
                elif x == ']':
                    if tmplist[-1] == '[':
                        tmplist.pop(-1)
                    else:
                        raise Exception
                        
            except Exception:
                return False
        if len(tmplist) == 0:
            return True
        else:
            return False