檢查平衡括號

括號被認為是以下字元中的任何一個:(){}[]

如果開口括號(即 ([{)出現在完全相同型別的右括號(即 )]})的左側,則兩個括號被認為是匹配對。有三種型別的匹配對括號:[]{}()

如果它所包含的括號組不匹配,則匹配的一對括號不平衡。例如,{[(])} 不平衡,因為 {} 之間的內容不平衡。這對方括號包圍一個不平衡的開口支架 (,這對括號包圍一個不平衡的閉合方括號 ]

通過這個邏輯,我們說如果滿足以下條件,則認為括號序列是平衡的:

它不包含任何不匹配的括號。

括在括號內的括號子集也是一對匹配的括號。

演算法:

  1. 宣告一個堆疊(比如 stack)。
  2. 現在遍歷字串輸入。
  • a)如果當前字元是起始括號(即 ({[),則將其推入堆疊。
  • b)如果當前字元是結束括號(即 )}]),則從堆疊彈出。如果彈出的字元是匹配的起始括號,那麼其他的括號是 not balanced
  • c)如果當前字元是右括號(即 )}])並且堆疊為空,則括號為 not balanced
  1. 完成遍歷後,如果堆疊中還有一些起始括號,則字串為 not balanced 否則我們有一個 balanced 字串。