m2skills

balanced brackets c++

Apr 18th, 2017
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. // program to implement balanced brackets using stack
  2.  
  3. #include <iostream>
  4. #include<stack>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9.  
  10.     int test;
  11.     cin>>test;
  12.     for(int i=0; i<test; i++){
  13.         stack <char> s1;
  14.         int flag = 0;
  15.         string str;
  16.         cin>>str;
  17.         for (int j=0; j<str.length();j++){
  18.             char s = str[j];
  19.             if(s == '(' || s == '[' || s == '{'){
  20.                 s1.push(s);
  21.             }
  22.             else if(s == ')'){
  23.                 if (s1.size() > 0){
  24.                     char temp = s1.top();
  25.                     s1.pop();
  26.                     if(temp != '('){
  27.                         flag = true;
  28.                         break;
  29.                     }
  30.                 }
  31.                 else{
  32.                     flag = true;
  33.                     break;
  34.                 }
  35.             }
  36.             else if(s == ']'){
  37.                 if (s1.size() > 0){
  38.                     char temp = (char) s1.top();
  39.                     s1.pop();
  40.                     if(temp != '['){
  41.                         flag = true;
  42.                         break;
  43.                     }
  44.                 }
  45.                 else{
  46.                     flag = true;
  47.                     break;
  48.                 }
  49.             }
  50.             else if(s == '}'){
  51.                 if (s1.size() > 0){
  52.                     char temp = (char) s1.top();
  53.                     s1.pop();
  54.                     if(temp != '{'){
  55.                         flag = true;
  56.                         break;
  57.                     }
  58.                 }
  59.                 else{
  60.                     flag = true;
  61.                     break;
  62.                 }
  63.             }
  64.         }
  65.         if(!flag && s1.size() == 0){
  66.             cout<<"YES";
  67.         }else{
  68.             cout<<"NO";
  69.         }
  70.     }
  71. }
  72.  
  73. /*
  74.  
  75. Sample Input
  76.  
  77. 3
  78. {[()]}
  79. {[(])}
  80. {{[[(())]]}}
  81.  
  82.  
  83. Sample Output
  84.  
  85. YES
  86. NO
  87. YES
  88. */
Add Comment
Please, Sign In to add comment