91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

偏关县| 芮城县| 林芝县| 宜春市| 旬邑县| 育儿| 尼木县| 天峻县| 灵山县| 上饶市| 临沧市| 南康市| 金阳县| 永泰县| 合阳县| 桦南县| 青海省| 鄂伦春自治旗| 梧州市| 温泉县| 全南县| 大足县| 克什克腾旗| 英德市| 碌曲县| 卓尼县| 喀什市| 芮城县| 红桥区| 策勒县| 新乐市| 墨竹工卡县| 绥德县| 凤凰县| 靖安县| 兴化市| 北京市| 年辖:市辖区| 扎赉特旗| 阿勒泰市| 玉林市|