亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python實現代數式括號有效性檢驗

發布時間:2020-10-29 16:05:17 來源:億速云 閱讀:158 作者:Leah 欄目:開發技術

python實現代數式括號有效性檢驗?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

思路:

利用棧實現代數式中括號有效行的的檢驗:

代碼:

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))

關于python實現代數式括號有效性檢驗問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

河西区| 公主岭市| 贵溪市| 新安县| 万盛区| 松江区| 安吉县| 抚顺县| 哈密市| 彭山县| 金华市| 沿河| 保山市| 郎溪县| 青龙| 沙洋县| 广河县| 舒城县| 东莞市| 达日县| 黑龙江省| 洞口县| 叙永县| 东光县| 屏南县| 宜城市| 台前县| 桑植县| 江门市| 普宁市| 潮安县| 偃师市| 桦南县| 繁峙县| 台北市| 保亭| 合江县| 河池市| 青浦区| 抚宁县| 英德市|