I2F05. Expressions parentitzades P58999


Statement
 

pdf   zip

html

Implementeu un programa que comprovi la correcta parentització d’una sèrie de paraules donades.

Entrada

L’entrada consisteix en una sèrie paraules no buides formades amb ’(’, ’)’, ’[’, ’]’, i lletres minúscules.

Sortida

Per a cada paraula, cal escriure si és correcta o no seguint el format de l’exemple. Diem que una paraula és correcta si i només si:

  • Segueix les regles habituals de parentització, és a dir, cada ‘(’ té exactament un ‘)’ que el tanca, i cada ‘[’ té exactament un ‘]’ que el tanca.
  • Dins dels parèntesis i claudàtors que no tenen parèntesis ni claudàtors interiors, hi ha exactament una lletra.
  • Les lletres no apareixen enlloc més.

Pista

Una pila de caràcters us pot ser útil per resoldre aquest problema.

Public test cases
  • Input

    [x]
    ()
    (xy)
    (z)((z))
    (y)(())
    (y)(a(z))
    ([a)]
    ([a])
    [([a]((b)))[c](d)](e)
    [](x)
    ]x[
    (a))
    k
    (a)b
    a[b]
    

    Output

    [x]: si
    (): no
    (xy): no
    (z)((z)): si
    (y)(()): no
    (y)(a(z)): no
    ([a)]: no
    ([a]): si
    [([a]((b)))[c](d)](e): si
    [](x): no
    ]x[: no
    (a)): no
    k: no
    (a)b: no
    a[b]: no
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++