- Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpairs_stack.py
More file actions
Latest commit
95 lines (68 loc) · 1.92 KB
/
Copy pathpairs_stack.py
File metadata and controls
95 lines (68 loc) · 1.92 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# -*- coding: utf-8 -*-
"""
Programa desarrollado por el Licenciado César Cordero Rodríguez.
Bajo licencia GPLv3.
Puede ser modificado, copiado y distribuido.
Se desarrolló con fines educativos.
"""
# Brackets balanced: In a string, the program will check the pair's balance of
# []{}(), and the correct order, using stacks.
importtime
defpairs_stack(string, pairs= {'[': ']', '{': '}', '(': ')'}):
opening=pairs.keys()
closing=pairs.values()
match=list()
forsinstring:
ifsinopening:
match.insert(0, s)
elifsinclosing:
iflen(match) ==0:
returnFalse
ifmatch[0] ==opening[closing.index(s)]:
match.pop(0)
else:
returnFalse
iflen(match) ==0:
returnTrue
returnFalse
millis=float(time.time() *1000)
string="[]{}()[][][]"
print"Should be true"
printstr(pairs_stack(string))
string="([()][][{}])"
print"Should be true"
printstr(pairs_stack(string))
string="[(])"
print"Should be false"
printstr(pairs_stack(string))
string="[([])()({})]"
print"Should be true"
printstr(pairs_stack(string))
string="[(,,),(,,[])]"
print"Should be true"
printstr(pairs_stack(string))
string="[(,,,(,,[])]"
print"Should be false"
printstr(pairs_stack(string))
string="]"
print"Should be false"
printstr(pairs_stack(string))
string="["
print"Should be false"
printstr(pairs_stack(string))
string="{[{}][][({})]}"
print"Should be true"
printstr(pairs_stack(string))
string="""
public static void main(String args[])
{
System.out.println("Hello world");
}
"""
print"Should be true"
printstr(pairs_stack(string))
string="[[[((({{{}}})))]]]"
print"Should be true"
printstr(pairs_stack(string))
millis=float(time.time() *1000) -millis
print"Result "+str(millis)