Advertisement
rdsedmundo

exp_temp.cpp

May 18th, 2014
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. bool valid(string cadeia, bool check) {
  8.     int fecha_par = 0, fecha_col = 0, fecha_cha = 0;
  9.  
  10.     for(int j = 0; j < (int) cadeia.length(); j++) {
  11.         if(cadeia[j] == '(')
  12.             fecha_par++;
  13.         else if(cadeia[j] == ')') {
  14.             if(!fecha_par) {
  15.                 fecha_par = 1;
  16.                 break;
  17.             }
  18.  
  19.             fecha_par--;
  20.         }
  21.  
  22.         if(cadeia[j] == '[')
  23.             fecha_col++;
  24.         else if(cadeia[j] == ']') {
  25.             if(!fecha_col) {
  26.                 fecha_col = 1;
  27.                 break;
  28.             }
  29.  
  30.             fecha_col--;
  31.         }
  32.  
  33.         if(cadeia[j] == '{')
  34.             fecha_cha++;
  35.         else if(cadeia[j] == '}') {
  36.             if(!fecha_cha) {
  37.                 fecha_cha = 1;
  38.                 break;
  39.             }
  40.  
  41.             fecha_cha--;
  42.         }
  43.     }
  44.  
  45.     if(fecha_par != 0 || fecha_col != 0 || fecha_cha != 0)
  46.         return false;
  47.     else {
  48.         if(check)
  49.             return (valid(cadeia.substr(0, cadeia.size()/2), false) && valid(cadeia.substr(cadeia.size()/2, cadeia.size()), false));
  50.         else
  51.             return true;
  52.     }
  53. }
  54.  
  55. int main() {
  56.  
  57.     int n;
  58.     cin >> n;
  59.  
  60.     for(int i = 0; i < n; i++) {
  61.         string cadeia;
  62.         cin >> cadeia;
  63.  
  64.         if(valid(cadeia, true))
  65.             cout << "S" << endl;
  66.         else
  67.             cout << "N" << endl;
  68.     }
  69.  
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement