Fișierul intrare/ieșire paranteze3.in, paranteze3.out Sursă Cerc informatică Vianu
Autor teorie Adăugată de avatar francu Cristian Frâncu francu
Timp de execuție pe test 0.1 sec Limită de memorie 1024 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip full
open book Poți vedea testele pentru această problemă accesând atașamentele .

Paranteze 3 (clasa a 8-a)

Notă: acesta este un exercițiu introductiv de analiză sintactică (parsing). Problema trebuie implementată folosind analizorul recursiv cu proceduri. Vectorii sînt interziși. Aceasta înseamnă că sursa voastră nu poate fi C++ din motive de STL. Îmi pare rău.

O expresie este corectă dacă conține numai paranteze rotunde și acolade corect închise și nici un alt caracter, nici măcar spațiu. De exemplu ()({}()({})) este o expresie corectă, în vreme ce ({)} nu este o expresie corectă și nici {}({})). O expresie vidă (care nu conține nici un caracter) este corectă.

Cerință

Dat un șir de caractere determinați dacă formează o expresie corectă și determinați gradul maxim de imbricare. Gradul maxim de imbricare este numărul maxim de paranteze una într-alta.

Date de intrare

Fișierul de intrare paranteze3.in conține o singură linie de caractere, terminată cu caracterul sfîrșit de linie.

Date de ieșire

În fișierul de ieșire paranteze3.out se va afișa un singur număr, gradul maxim de imbricare dacă expresia este corectă, sau -1 dacă expresia este incorectă.

Restricții

  • linia de la intrare are maxim un milion de caractere, excluzînd finalul de linie
  • linia de la intrare se termină cu caracterul sfîrșit de linie, ‘\n’
  • testele sînt grupate cîte două: pentru a lua punctaj la un grup de teste trebuie să răspundeți corect la ambele teste din grup

Exemple

paranteze3.in paranteze3.out
{}({}){{(({}))}}
5
({
-1
({)}
-1
{}({}))
-1

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 3 categorii