Paréntesis Válido

Este problema consiste en regresar cierto si un string contiene una serie de paréntesis que sean válidos

Solución

def isValid(s: str) -> bool:
         fifo = []

         for char in s:
             if char in '({[':
                 fifo.append(char)
             else:
                 if not fifo:
                     return False

                 curr= fifo.pop()

                 if (char == ')' and curr!= '(') or (char == '}' and curr!= '{') or (char == ']' and curr!= '['):
                     return False

         return not fifo

Esta función primero añade a una lista los paréntesis que abren y conforme la lista avanza el orden en el que salen debe ser el mismo con el que entran por lo que si esto no es así entonces el paréntesis no es válido y si al final la lista está vacía se regresa True