python括号匹配算法_使用Python的栈实现括号匹配算法
利用Python列表实现一个栈的结构,再使用栈实现括号匹配的算法,所谓的括号匹配是指在编程语言中,括号是成对出现的,最先出现的左括号,对应于最后的右括号,后出现的左括号对应于最新右括号,符合栈的特征
写一个栈的类:stack.py
class Stack:
def __init__(self):
self.items = []
def is_Empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(items)-1]
def size(self):
return len(self.items)
实现括号匹配的算法程序:
from stack import Stack
def parChecker(symbolString):
s = Stack()
balanced = True
index = 0
while index < len(symbolString) and balanced:
symbol = symbolString[index]
if symbol == "(":
s.push(symbol)
elif symbol == ")":
if s.is_Empty():
balanced = False
else:
s.pop()
index += 1
if balanced and s.is_Empty():
return True
else:
return False
print(parChecker("(((2356)))"))
输出结果:
True
再测试
print(parChecker("(()))"))
输出结果False
扩展
能够匹配多种括号,{},[]
只需要小小的改动代码:
from stack import Stack
def parChecker(symbolString):
s = Stack()
balanced = True
index = 0
while index < len(symbolString) and balanced:
symbol = symbolString[index]
if symbol in "({[":
s.push(symbol)
elif symbol in ")}]":
if s.is_Empty():
balanced = False
else:
s.pop()
index += 1
if balanced and s.is_Empty():
return True
else:
return False
print(parChecker("[(({fdf}))]"))
python括号匹配算法_使用Python的栈实现括号匹配算法相关推荐
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python 小括号 运算_浅析python 中大括号中括号小括号的区分
python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也叫做花括号{ }.其作用也各不相同,分别用来代表不同的python基本内置数据类型. 1.python中的小括号( ): ...
- python 网页编程_通过Python编程检索网页
python 网页编程 The internet and the World Wide Web (WWW), is probably the most prominent source of info ...
- python高斯求和_利用Python进行数据分析(3)- 列表、元组、字典、集合
本文主要是对Python的数据结构进行了一个总结,常见的数据结构包含:列表list.元组tuple.字典dict和集合set. image 索引 左边0开始,右边-1开始 通过index()函数查看索 ...
- python 免费空间_用python做大数据
不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...
- python希腊字母字符串_#10 Python字符串
前言 通过上一节可知,Python6个序列的内置类型中,最常见的是列表和元组,但在Python中,最常用的数据类型却不是列表和元组,而是字符串.要想深入了解字符串,必须先掌握字符编码问题.因此本篇博文 ...
- python选择题题目_《Python程序设计》题库 - 选择题
一.基础知识 1 . Python 语言属于( ) . C A . 机器语言 B . 汇编语言 C .高级语言 D .科学计算语言 2 .下列选项中,不属于 Python 特点的是( ) . B A ...
- python集群_使用Python集群文档
python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...
最新文章
- 利用MAVEN打包可运行jar包,包括依赖的第三方包
- html 手机浏览器:屏幕适配 - 代码篇
- 安全客2017季刊-第3期
- java web汽车商城_基于jsp的汽车销售商城系统
- 干货| PHPCon上TARS-PHP全面解读及PPT下载
- java版我的世界光追,老瓶装新酒 光追版《我的世界》将至你心动了吗
- keep怎么生成运动轨迹_【念叨叨】keep手环拔草记
- R语言:使用openxlsx读取和写入数据
- 【多商户招商自营多元化功能】
- HTML分页符怎么设置,HTML中的分页符
- 计算机专业买哪一款华硕电脑好,华硕笔记本哪款好 如何挑选笔记本电脑
- php解析失败,php – 解析错误:语法错误,意外(T_VARIABLE)
- sklearn中KMeans重要参数n_clusters
- excel连接mysql速度太慢,excel表格数据太大-excel太大,运行缓慢该怎么办
- MD5算法的编程实现
- 判断当前时间段是否在某个时间段内(当前小时是否在当日某个时间段)
- 各领域公开数据集下载 | 资源
- 附视频教程|如何优雅扩容云硬盘
- PPT使用VBA批量删除图形
- linux时间同步服务z