Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. #include <fstream>
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5.  
  6. class stek {
  7. private:
  8. int sizep;
  9. int size;
  10. char *p; //simbols
  11.  
  12. public:
  13.  
  14. stek() {
  15. size = 0;
  16. sizep = 0;
  17. }
  18.  
  19. void push_back(char a) {
  20. size++;
  21.  
  22. if (size >= sizep) {
  23. sizep = (sizep + 1) * 2;
  24. char *newarray = new char[sizep]; //create mew massive with increased size
  25. for (int i = 0; i < size - 1; i++) {
  26. newarray[i] = p[i];
  27. }
  28. newarray[size - 1] = a;
  29. delete[] p;
  30. p = newarray;
  31. }
  32. else {
  33. p[size - 1] = a;
  34. }
  35. }
  36.  
  37. void pop_back(char c, int *o) { //simbol of ([]), *o right or wrong
  38. if (size - 1 >= 0 && (p[size - 1] == '(' and c == ')' or p[size - 1] == '[' and c == ']'))
  39. {
  40. size--; //delete element
  41. }
  42. else *o = 0;
  43.  
  44. }
  45.  
  46. void del()
  47. {
  48. delete[] p; //delete massive
  49. p = nullptr; // присвоили указателю на массив "ничего"
  50. size = 0; // аналогично
  51. sizep = 0;
  52. }
  53.  
  54. ~stek() {
  55. delete[] p;
  56. }
  57.  
  58. };
  59.  
  60. int main() {
  61. //ifstream СЃin("stack.in");
  62. stek a;
  63. string s;
  64. //ofstream СЃout("stack.out");
  65.  
  66. while (cin >> s)
  67. {
  68. int o = 1;
  69. for (int i = 0; i < s.size(); i++)
  70. {
  71. if ('[' == s[i] or '(' == s[i])
  72. {
  73. a.push_back(s[i]);
  74. }
  75. if (')' == s[i] or ']' == s[i])
  76. {
  77. a.pop_back(s[i], &o);
  78. if (o == 0)
  79. {
  80. cout << "NO";
  81. break;
  82.  
  83. }
  84. }
  85. }
  86. if (o == 1)
  87. {
  88. cout << "YES";
  89. }
  90. a.del(); //делаем это для занесения другой строки. очистка памяти
  91. }
  92.  
  93. return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement