MeehoweCK

Untitled

Apr 14th, 2023
624
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. bool poprawne_wyrazenie(string ciag)
  6. {
  7.     // jeśli w wyrażeniu znajduje się cokolwiek poza nawiasem - wyrażenie jest niepoprawne
  8.     // w każdym miejscu liczba poprzedzających '(' musi być nie mniejsza niż ')'
  9.     // łączna liczba nawiasów '(' jest równa ')'
  10.  
  11.     unsigned d = ciag.size();
  12.  
  13.     unsigned otwarte = 0, zamkniete = 0;
  14.  
  15.     for(unsigned i = 0; i < d; ++i)
  16.     {
  17.         if(ciag[i] != '(' && ciag[i] != ')')        // na danym miejscu znajduje się coś innego niż nawias
  18.             return false;
  19.         if(ciag[i] == '(')
  20.             ++otwarte;
  21.         else
  22.             ++zamkniete;
  23.         if(zamkniete > otwarte)     // nawiasów ')' jest więcej niż '('
  24.             return false;
  25.     }
  26.     if(otwarte != zamkniete)
  27.         return false;
  28.     return true;
  29. }
  30.  
  31. int main()
  32. {
  33.     short n;
  34.     cin >> n;
  35.  
  36.     string tablica[n];
  37.     for(short i = 0; i < n; ++i)
  38.         cin >> tablica[i];
  39.  
  40.     for(short i = 0; i < n; ++i)
  41.     {
  42.         if(poprawne_wyrazenie(tablica[i]))
  43.             cout << "TRUE\n";
  44.         else
  45.             cout << "FALSE\n";
  46.     }
  47.  
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment