Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- struct IElem
- {
- int value;
- IElem *next;
- };
- class IStack
- {
- IElem *pbeg, *pend;
- int Size;
- public:
- IStack()
- {
- pbeg = NULL;
- }
- int get_size()
- {
- return Size;
- }
- int top();
- void push(int val);
- int pop();
- };
- void IStack::push(int val)
- {
- IElem *ptr = new IElem;
- ptr->value = val;
- ptr->next = pbeg;
- pbeg = ptr;
- Size++;
- }
- int IStack::pop()
- {
- if (!pbeg)
- return -1;
- IElem *ptr = pbeg;
- int val = pbeg->value;
- pbeg = pbeg->next;
- delete ptr;
- return val;
- }
- int main()
- {
- IStack stack;
- string s, time;
- int n = 1, znach = 0;
- cin >> s;
- int dlina = s.length();
- int i = 0;
- while (i < dlina && n != 0)
- {
- if (s[i]=='(' || s[i]=='[' || s[i] =='{' || s[i] =='<')
- {
- stack.push(s[i]);
- znach++;
- // cout << n << " ";
- }
- else if (s[i] ==')')
- {
- if (stack.pop()=='(')
- n = 1;
- else n = 0;
- //cout << n << " ";
- }
- else if (s[i] ==']' )
- {
- if (stack.pop()=='[')
- n = 1;
- else n = 0;
- //cout << n << " ";
- }
- else if (s[i] =='}')
- {
- if (stack.pop()=='{')
- n = 1;
- else n = 0;
- //cout << n << " ";
- }
- else if (s[i] =='>')
- {
- if (stack.pop()=='<')
- n = 1;
- else n = 0;
- // cout << n << " ";
- }
- i++;
- }
- cout << n;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement