Module: Sequenza di parentesi corrette (RSP)


Problem

3 /6


Tilda-omega-lambda-calcolo

Theory Click to read/hide

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. 

Problem

Tilda-omega-lambda-calculus è uno sviluppo ancora più innovativo di "British Scientists, Inc" nel campo della programmazione funzionale. La sua differenza dal calcolo omega-lambda sta solo nella capacità di mettere parentesi quadre e graffe. Erano previste anche staffe a forma di elefante, ma la società non è riuscita a modificare lo standard UNICODE. 
L'input è un'espressione tilde-omega-lambda di non più di 10^7 caratteri. Devi stampare il risultato della sua riduzione tilde-izzy, che funziona allo stesso modo della riduzione izzy per le espressioni omega-lambda, ma con parentesi quadre e graffe.

Ricordiamo che  izzy-reduction è una delle operazioni su tali espressioni. Quando viene eseguito, viene verificato se la sequenza di parentesi nell'espressione è corretta. I termini sono ignorati. Se la sequenza è corretta, diventa il termine gg, altrimenti diventa il termine wp. 
 

 

Esempi
# Input Uscita
1 principale{izzy[lol](ttt)} gg