Advertisement
193030

2.2 stack

May 8th, 2021
102
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None
  1. // 2.2.cpp : This file contains the 'main' function. Program execution begins and ends there.
  2. // Даден е низ, съдържащ отварящи и затварящи скоби от различни типове
  3. // Напишете програма, която да определи дали скобите са правилно затворени
  4. // Скобите сот различни типове не могат да се пресичат
  5. // Пример [(<>)] - правилно
  6. // ([]<)> - Не се правилно
  7.  
  8. #include <iostream>
  9. #include <stack>
  10. using namespace std;
  11. char allOpen[] = { '{', '[', '<', '(' };
  12. char allClosed[] = { '}', ']', '>', ')' };
  13. //string inputString = "[<>]]";
  14. int numBrackets = 4;
  15. int bracesNum = 0;
  16. int lastType = 0;
  17. stack<char> st;
  18.  
  19.  
  20. int main()
  21. {
  22. string inputString = "[<>]";
  23. stack <char> st;
  24. bool openCheck = false;
  25. for(char s: inputString)
  26. {
  27. for(int i :allOpen)
  28. {
  29. if (s == allOpen[i])
  30. {
  31. st.push(s);
  32. lastType = i;
  33. openCheck = true;
  34. }
  35. }
  36.  
  37. if(openCheck == false)
  38. {
  39. for (int i : allClosed)
  40. {
  41. if (s == allClosed[i] && st.top()+2 == s)
  42. {
  43.  
  44. if (!st.empty())
  45. {
  46. cout << st.top() << endl;
  47. st.pop();
  48. }
  49. else
  50. {
  51. cout << "Ne sa pravilno zatvoreni" << endl;
  52. }
  53. }
  54. }
  55. }
  56.  
  57. }
  58. if(st.empty() == true)
  59. {
  60. cout << "Pravilno zatvoreni" << endl;
  61.  
  62. }
  63. else
  64. {
  65. cout << "Ne sa pravilno zatvoreni2" << endl;
  66.  
  67. }
  68.  
  69. }
  70.  
Advertisement
RAW Paste Data Copied
Advertisement