Cerința
Se dau n
șiruri de paranteze rotunde. Să se stabilească, despre fiecare șir, dacă este corect parantezat – adică dacă parantezele se închid corect.
Un șir de paranteze S
rotunde este corect parantezat dacă:
S
este șirul vid, sauS = (T)
șiT
este corect parantezat, sauS = AB
, iarA
șiB
sunt corect parantezate.
Date de intrare
Fișierul de intrare paranteze1.in
conține pe prima linie numărul n
, pe următoarele n
linii câte un șir de paranteze rotunde.
Date de ieșire
Fișierul de ieșire paranteze1.out
va conține n
linii: fiecare linie va conține valoarea 1
, dacă șirul corespunzător de paranteze este corect parantezat și 0
în caz contrar.
Restricții și precizări
1 ≤ n ≤ 100
- fiecare șir va avea cel mult
255
de paranteze
Exemplu
paranteze1.in
4 (()) )(() ()((()())()) ()(
paranteze1.out
1 0 1 0
#include <bits/stdc++.h> using namespace std; ifstream fin("paranteze1.in"); ofstream fout("paranteze1.out"); int main() { int n , k = 0; char sir[300]; int ok=0; fin >> n; for(int i = 0 ; i < n ; ++i) { fin >> sir; k=0; ok=1; for(int j = 0 ; j < strlen(sir) && ok ; ++j) if(sir[j]=='(') k++; else if(sir[j]==')' && k==0) ok=0; else k--; if(ok && k==0) fout << 1 << endl; else fout << 0 << endl; } return 0; }