-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathStackExample.py
57 lines (44 loc) · 1.1 KB
/
StackExample.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class Stack:
def __init__(self):
self.item = [];
def isEmpty(self):
return self.item == [];
def push(self, x):
self.item.append(x);
def pop(self):
return self.item.pop();
def peek(self):
return self.item[len(self.item) - 1];
def size(self):
return len(self.item);
#
# s=Stack()
#
# print(s.isEmpty())
# s.push(4)
# s.push('dog')
# print(s.peek())
# s.push(True)
# print(s.size())
# print(s.isEmpty())
# s.push(8.4)
# print("Popping ", s.pop())
# print(s.pop())
# print(s.size())
def parChecker(symbolString):
s = Stack();
balanced = True;
for c in symbolString:
if c in '([{':
s.push(c);
else:
balanced = False if not symbolChecker(s.pop(), c) and s.isEmpty() else True;
return True if balanced and s.isEmpty() else False;
def symbolChecker(popedValue, symbolChar):
item1 = "([{";
item2 = ")]}"
return item1.index(popedValue) == item2.index(symbolChar);
print(parChecker('((()))'))
print(parChecker('(()'))
print(parChecker('{{([][])}()}'))
print(parChecker('[{()]'))