Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- bool poprawne_wyrazenie(string ciag)
- {
- // jeśli w wyrażeniu znajduje się cokolwiek poza nawiasem - wyrażenie jest niepoprawne
- // w każdym miejscu liczba poprzedzających '(' musi być nie mniejsza niż ')'
- // łączna liczba nawiasów '(' jest równa ')'
- unsigned d = ciag.size();
- unsigned otwarte = 0, zamkniete = 0;
- for(unsigned i = 0; i < d; ++i)
- {
- if(ciag[i] != '(' && ciag[i] != ')') // na danym miejscu znajduje się coś innego niż nawias
- return false;
- if(ciag[i] == '(')
- ++otwarte;
- else
- ++zamkniete;
- if(zamkniete > otwarte) // nawiasów ')' jest więcej niż '('
- return false;
- }
- if(otwarte != zamkniete)
- return false;
- return true;
- }
- int main()
- {
- short n;
- cin >> n;
- string tablica[n];
- for(short i = 0; i < n; ++i)
- cin >> tablica[i];
- for(short i = 0; i < n; ++i)
- {
- if(poprawne_wyrazenie(tablica[i]))
- cout << "TRUE\n";
- else
- cout << "FALSE\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment