Advertisement
Guest User

Untitled

a guest
Mar 17th, 2021
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. #include <cmath>
  2. #include <iostream>
  3. #include <sstream>
  4. #include <string>
  5. #include <vector>
  6. using namespace std;
  7.  
  8. int main() {
  9.     string line;
  10.     char input;
  11.     getline(cin, line);
  12.     istringstream ss(line);
  13.     vector<char> arr;
  14.     int bigOpen = 0, bigClose = 0, mediumOpen = 0, mediumClose = 0,
  15.         smallOpen = 0, smallClose = 0;
  16.     bool valid = true;
  17.     while (ss >> input) {
  18.         if (input == '{') {
  19.             bigOpen++;
  20.         } else if (input == '}') {
  21.             bigClose++;
  22.         } else if (input == '[') {
  23.             mediumOpen++;
  24.         } else if (input == ']') {
  25.             mediumClose++;
  26.         } else if (input == '(') {
  27.             smallOpen++;
  28.         } else if (input == ')') {
  29.             smallClose++;
  30.         }
  31.         arr.push_back(input);
  32.         if (bigOpen < bigClose || mediumOpen < mediumClose ||
  33.             smallOpen < smallClose) {
  34.             valid = false;
  35.             break;
  36.         }
  37.     }
  38.     if (bigOpen - bigClose != 0 || mediumOpen - mediumClose != 0 ||
  39.         smallOpen - smallClose != 0) {
  40.         valid = false;
  41.     }
  42.     for (int i = 0; i < (arr.size() - 1); i++) {
  43.         if (arr[i] == '(') {
  44.             if (arr[i + 1] == ']' || arr[i + 1] == '}' || arr[i + 1] == '[' ||
  45.                 arr[i + 1] == '{') {
  46.                 valid = false;
  47.                 break;
  48.             }
  49.         } else if(arr[i] == '['){
  50.             if(arr[i+1] == '}' || arr[i+1] == '{') {
  51.                 valid = false;
  52.                 break;
  53.             }
  54.         } else if(arr[i] == '}'){
  55.             if(arr[i+1] == ']' || arr[i+1] == ')') {
  56.                 valid = false;
  57.                 break;
  58.             }
  59.         } else if(arr[i] == ']'){
  60.             if(arr[i+1] == ')') {
  61.                 valid = false;
  62.                 break;
  63.             }
  64.         }
  65.     }
  66.  
  67.     if (valid) {
  68.         cout << "valid" << endl;
  69.     } else {
  70.         cout << "invalid" << endl;
  71.     }
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement