#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : guangxu.qi
# @Time : 2020/9/28 15:48
# @FileName: per_checker.py
# @Description: 判断括号是否匹配 { { ( [ ] [ ] ) } ( ) }
from algorithms.datastruct.Stack import Stack
def par_checker(symbol_string):
s = Stack()
for i in symbol_string:
if i == '(':
s.push('(')
else:
if s.is_empty():
return False
else:
s.pop()
if s.is_empty():
return True
else:
return False
def par_match(l, r):
l_kuohao = '([{'
r_kuohao = ')]}'
if l_kuohao.index(l) == r_kuohao.index(r):
return True
else:
return False
def par_checker2(symbol_string):
s = Stack()
for i in symbol_string:
if i in '([{':
s.push(i)
else:
if s.is_empty():
return False
else:
left_par = s.pop()
if par_match(left_par, i):
continue
else:
return False
if s.is_empty():
return True
else:
return False
if __name__ == '__main__':
print(par_checker('(((()())))'))
print(par_checker2('{}{{[[]]((()))}}'))
栈的应用之括号匹配
最新推荐文章于 2022-06-25 23:17:05 发布