Nel caso della presenza di parentesi di più tipi, tutto diventa un po' più complicato. Creiamo uno stack che funga da variabile di equilibrio. Questo è necessario perché le parentesi non possono sovrapporsi. Quando percorriamo una riga e incontriamo una parentesi di apertura, la mettiamo in pila. Quando incontriamo una parentesi graffa di chiusura, proviamo a estrarre la parentesi graffa di apertura di quel tipo dallo stack. Se nello stack è presente una parentesi graffa di tipo diverso, la sequenza non è valida. Se lo stack non è vuoto alla fine, anche la sequenza non è valida.