Python Language Parenthèses parentales


Exemple

Les piles sont souvent utilisées pour l'analyse. Une tâche d'analyse simple consiste à vérifier si une chaîne de parenthèses correspond.

Par exemple, la chaîne ([]) correspond, car les crochets externes et internes forment des paires. ()<>) ne correspond pas, car le dernier ) n’a pas de partenaire. ([)] ne correspond pas non plus, car les paires doivent être entièrement à l'intérieur ou à l'extérieur des autres paires.

def checkParenth(str):
    stack = Stack()
    pushChars, popChars = "<({[", ">)}]"
    for c in str:
        if c in pushChars:
            stack.push(c)
        elif c in popChars:
            if stack.isEmpty():
                return False
            else:
                stackTop = stack.pop()
                # Checks to see whether the opening bracket matches the closing one
                balancingBracket = pushChars[popChars.index(c)]
                if stackTop != balancingBracket:
                    return False
        else:
            return False

    return not stack.isEmpty()