StabCrab

Мой вариант скобок

Mar 23rd, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5. int main()
  6. {
  7.     string a;
  8.     cin >> a;
  9.     vector <char> open;
  10.     open.clear();
  11.     vector <char> close;
  12.     close.clear();
  13.     int circle = 0;
  14.     int figure = 0;
  15.     int square = 0;
  16.     int triangle = 0;
  17.     for (int i = 0 ; i < a.length(); i++)
  18.     {
  19.         switch (a[i]) {
  20.             case '(': {
  21.                 circle++;
  22.                 open.push_back('(');
  23.                 break;
  24.             }
  25.             case ')': {
  26.                 circle--;
  27.                 close.push_back('(');
  28.                 break;
  29.             }
  30.             case '{': {
  31.                 figure++;
  32.                 open.push_back('{');
  33.                 break;
  34.             }
  35.             case '}': {
  36.                 figure--;
  37.                 close.push_back('{');
  38.                 break;
  39.             }
  40.             case '[': {
  41.                 square++;
  42.                 open.push_back('[');
  43.                 break;
  44.             }
  45.             case ']': {
  46.                 square--;
  47.                 close.push_back('[');
  48.                 break;
  49.             }
  50.             case '<': {
  51.                 triangle++;
  52.                 open.push_back('<');
  53.                 break;
  54.             }
  55.             case '>': {
  56.                 triangle--;
  57.                 close.push_back('<');
  58.                 break;
  59.             }
  60.         }
  61.         if (circle < 0 || figure < 0 || square < 0 || triangle < 0)
  62.         {
  63.             cout << "NO";
  64.             return 0;
  65.         }
  66.     }
  67.     std:: reverse(close.begin(), close.end());
  68.     if (open == close)
  69.         cout << "yes";
  70.     else
  71.         cout << "no";
  72. }
Advertisement
Add Comment
Please, Sign In to add comment