思路:
利用栈实现代数式中括号有效行的的检验:
代码:
class mychain(object): #利用链表建立栈,链表为父类 length=0 def __init__(self,value=None,next=None):#创建链表,长度并不包含头部 self.value=value self.next=next #mychain.length=mychain.length+1 def append(self,value=None): while self.next!=None: self=self.next self.next=mychain(value) mychain.length=mychain.length+1 #追加时,链表长度增加 def travle(self):#遍历链表 print(self.value) if self.next!=None: self.next.travle() def drop (self,value):#删除特定值的第一个匹配节点 while self.next!=None: if self.next.value!=value: self=self.next else: self.next=self.next.next mychain.length=mychain.length-1 #删除时,链表长度减小 break def pop(self):#删除未节点 if self.next!=None:#并不删除头结点 while self.next.next!=None: self=self.next self.next=None mychain.length=mychain.length-1#弹出为节点,并减小长度,头结点不弹出 class stock(mychain):#栈类 bottom=None #栈底 top=None #栈顶 n_count=0 #计数 def Max(self): #占中最大值 if self.next!=None: tmp = self.next.value while self.next.next!=None: self=self.next if self.next.value>tmp: tmp=self.next.value return tmp else: print('栈为空!') def Min(self):#栈中的最小值 if self.next!=None: tmp = self.next.value while self.next.next!=None: self=self.next if self.next.value<tmp: tmp=self.next.value return tmp else: print('栈为空!') def push(self,value): #压栈 while self.next != None: self = self.next self.next = mychain(value) stock.top=self.next stock.length=stock.length+1 stock.n_count=stock.n_count+1 def __init__(self,value='',next=None): self.value=value self.next=next stock.bottom=self stock.top=self #stock.n_count=stock.n_count+1 #stock.length=stock.length+1 def append(self,value=''):#取消追加函数 print('请使用Push()!') def pop(self): if self.next!=None:#并不删除头结点 while self.next.next!=None: self=self.next self.next=None stock.top=self stock.length=stock.length-1#弹出为节点,并减小长度,头结点不弹出 class solution(object): def validationofbrackets(self,astr=''):#检验串中的括号合法性 braketsstock=stock() for i in astr: if i in ['{','(','[']: braketsstock.push(i) else: if i==')': if braketsstock.top.value=='(': braketsstock.pop() else: return False elif i==']': if braketsstock.top.value=='[': braketsstock.pop() else: return False elif i=='}': if braketsstock.top.value=='{': braketsstock.pop() else: return False else: pass print(astr) print(braketsstock.length) if braketsstock.length==0: return True else: return False
运行:
bstr='([{((({{}})))}]){{}}{{}{}{}[][]()(123)(((sin5)))}' f=solution() print(f.validationofbrackets(bstr))
总结
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月19日
2024年11月19日
- 好薇2024《兵哥哥》1:124K黄金母盘[WAV+CUE]
- 胡歌.2006-珍惜(EP)【步升大风】【FLAC分轨】
- 洪荣宏.2014-拼乎自己看【华特】【WAV+CUE】
- 伊能静.1999-从脆弱到勇敢1987-1996精选2CD【华纳】【WAV+CUE】
- 刘亮鹭《汽车DJ玩主》[WAV+CUE][1.1G]
- 张杰《最接近天堂的地方》天娱传媒[WAV+CUE][1.1G]
- 群星《2022年度发烧天碟》无损黑胶碟 2CD[WAV+CUE][1.4G]
- 罗文1983-罗文甄妮-射雕英雄传(纯银AMCD)[WAV+CUE]
- 群星《亚洲故事香港纯弦》雨果UPMAGCD2024[低速原抓WAV+CUE]
- 群星《经典咏流传》限量1:1母盘直刻[低速原抓WAV+CUE]
- 庾澄庆1993《老实情歌》福茂唱片[WAV+CUE][1G]
- 许巍《在别处》美卡首版[WAV+CUE][1G]
- 林子祥《单手拍掌》华纳香港版[WAV+CUE][1G]
- 郑秀文.1997-我们的主题曲【华纳】【WAV+CUE】
- 群星.2001-生命因爱动听电影原创音乐AVCD【MEDIA】【WAV+CUE】