fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. bool otwierajacy(char x)
  4. {
  5. return (x=='(' || x=='[' || x=='{');
  6. }
  7. int main() {
  8. stack<char> S;
  9. char znak,gora;
  10. string wyraz;
  11. cin>>wyraz;
  12. int len = wyraz.length();
  13. bool flag=true;
  14. for(int i=0;i<len;i++)
  15. {
  16. znak = wyraz[i];
  17. if(otwierajacy(znak))
  18. {
  19. S.push(znak);
  20. }else
  21. {
  22. if(S.empty())flag = false;
  23. else{
  24. gora = S.top();
  25. S.pop();
  26. if(gora == '{' && znak!='}') {cout<<"FALSE DLA"<<znak<<endl;flag = false;}
  27. if(gora == '(' && znak!=')' ) {cout<<"FALSE DLA"<<znak<<endl;flag = false;}
  28. if( (gora == '[' && znak!=']')) {cout<<"FALSE DLA"<<znak<<endl;flag = false;}
  29. }
  30.  
  31. }
  32. }
  33. if(flag && S.empty()){cout<<"True";}else cout<<"False";
  34. return 0;
  35. }
Success #stdin #stdout 0s 4160KB
stdin
(){[]}
stdout
True