399
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ă:
Seste șirul vid, sauS = (T)șiTeste corect parantezat, sauS = AB, iarAșiBsunt 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
255de 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;
}
Comentarii