练习7.1-2

#! /usr/bin/env python
# -*- coding: utf-8 -*-

'''
@author: liudaoqiang
@file: studycase
@time: 2018/9/2 10:46
'''

from arraystack import LinkedStack

def branketsBalance(exp):
	"""exp is a string that represents the expression"""
	stk = LinkedStack()
	for ch in exp:
		if ch in ['[','(']:
			stk.push(ch)
		elif ch in [']',')']:
			if stk.isEmpty():
				return False
			chFromStack = stk.pop()
			if ch == ']' and chFromStack != ']' or\
				ch == ')' and chFromStack != '(':
				return False
		return stk.isEmpty()

def branketsBalanceExtd(exp, startlyst, endlyst):
	"""exp is a string that represents the expression"""
	stk = LinkedStack()
	for index in range(len(startlyst) - 1):
		if startlyst[index] not in exp:
			return False
		stk.push(startlyst[index])
		if startlyst[index] == endlyst[index]:
			stk.pop()
		else:
			return False
	return stk.isEmpty()

def main():
	exp = input("input bracketed expression")
	if branketsBalance(exp):
		print("OK")
	else:
		print("not OK")

if __name__ == "__main__":
	main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值