Just Do IT !

Python算法学习day10: 栈应用(括号匹配问题)

字数统计: 136阅读时长: 1 min
2020/02/23 Share

栈的应用–括号匹配问题

括号匹配问题: 给一个字符串, 其中包括小括号, 中括号, 大括号, 求该字符串中的括号是否匹配
例如:
    - (){}[] 匹配
    - ([{}]) 匹配
    - ([)]   不匹配
    - ())    不匹配

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def brace_match(s):
stack = []
dic = {'(':')', '{':'}', '[':']'}
for ch in s:
if ch in {'(', '{', '['}:
stack.append(ch)
elif len(stack) == 0:
print('多了右括号%s' % ch)
return False
elif dic[stack[-1]] == ch:
stack.pop()
else:
print('括号%s处不匹配' % ch)
return False
if len(stack) == 0:
return True
else:
print('剩余左括号未匹配')
return False

CATALOG
  1. 1.
    1. 1.1. 栈的应用–括号匹配问题