栈Stack
2019-07-24 09:06:57来源:博客园 阅读 ()
class Stack: def __init__(self): self.items=[] def isEmpty(self): return self.items==[] def push(self,item): #添加元素进站 self.items.append(item) def peek(self): #打印栈顶元素 return self.items[len(self.items)-1] def pop(self): #从栈顶取出元素 return self.items.pop() def size(self): #返回栈中元素的个数 return len(self.items)
栈的另一种实现是把列表的首端(index=0)作为栈顶一样可以实现Stack
class Stack: def __init__(self): self.items=[] def isEmpty(self): return self.items==[] def push(self,item): #添加元素进站 self.items.insert(0,item) def peek(self): #打印栈顶元素 return self.items[0] def pop(self): #从栈顶取出元素 return self.items.pop(0) def size(self): #返回栈中元素的个数 return len(self.items)
def parChecker(symbolString): #单一括号匹配函数 s=Stack() balanced=True index=0 #判断索引值和字符串的大小 ,当前是否匹配 while index<len(symbolString) and balanced: symbol=symbolString[index] if symbol =="(": s.push(symbol) else: if s.isEmpty(): balanced=False else: s.pop() index=index+1 if balanced and s.isEmpty(): return True else: return False
print(parChecker("(()))"))
def TYparChecker(symbolString): #多种类型括号匹配方法 s=Stack() balanced=True index=0 while index<len(symbolString) and balanced: symbol=symbolString[index] if symbol in '([{': s.push(symbol) else: if s.isEmpty(): balanced= False else: top=s.pop() if not matchs(top,symbol): balanced=False index=index+1 if balanced and s.isEmpty(): return True else: return False def matchs(open,close): opens='([{' closers=')]}' return opens.index(open)==closers.index(close)
print(TYparChecker("{{[()]}"))
原文链接:https://www.cnblogs.com/jzxs/p/11090280.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:python生成器
- Python基础总结之初步认识---class类的继承(终)。第十六天 2019-08-13
- python 单例模式 2019-07-24
- python反射/issubclass&type&isinstance 2019-07-24
- 静态方法staticmethod和类方法classmethod 2019-07-24
- 面向对象之元类(metaclass) 2019-05-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash