Witam mam tutaj napisane zadanie nawiasy ale nie wiem jak je dokończyć aby program poprawnie wypisywał treść.
#include <bits/stdc++.h>
using namespace std;
int n;
string s, lista_otw;
bool otwierajacy(char c){
return c=='(' or c=='[' or c=='{' or c=='<';
}
int typ_nawiasu(char c){
if(c=='(' or c==')') return 1;
if(c=='[' or c==']') return 2;
if(c=='{' or c=='}') return 3;
if(c=='<' or c=='>') return 4;
}
bool czy_poprawne_wyrazenie(string s){
lista_otw="";
for(int i=0; i<s.size(); i++){
if(otwierajacy(s[i]))
lista_otw = lista_otw + s[i];
else
if(lista_otw=="" or typ_nawiasu(lista_otw[lista_otw.size()-1])!=typ_nawiasu(s[i]))
return 0;
else
lista_otw.erase(lista_otw.size()-1);
}
if(lista_otw.size()>0)
return 0;
return 1;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
char c;
cin >> n >> c;
cout << czy_poprawne_wyrazenie;
return 0;
}
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba n (1 ≤ n ≤ 10). W kolejnych n wierszach znajduje
się po jednym wyrażeniu złożonym z nie więcej niż 1 000 000 znaków. Wyrażenie składa się
z nawiasów: (, ), { ,}, [, ], <, >.
Wyjście
W n wierszach standardowego wyjścia Twój program powinien zapisać jedną literę ‘T’ lub ‘N’,
oznaczającą poprawność zapisu nawiasów w wyrażeniu arytmetycznym.
Przykład
Dla danych wejściowych: poprawną odpowiedzią jest:
3
([]) T
<(>) N
{()()} T
z góry dziękuję za pomoc