检查平衡括号

括号被认为是以下字符中的任何一个:(,),{,},[ 或 ]。

如果开口括号(即 (,[ 或 {)出现在完全相同类型的右括号(即 ),] 或 })的左侧,则两个括号被认为是匹配对。有三种类型的匹配对括号:[],{} 和 ()。

如果它所包含的括号组不匹配,则匹配的一对括号不平衡。例如,{[(])} 不平衡,因为 { 和 } 之间的内容不平衡。这对方括号包围一个不平衡的开口支架 (,这对括号包围一个不平衡的闭合方括号 ]。

通过这个逻辑,我们说如果满足以下条件,则认为括号序列是平衡的:

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

括在括号内的括号子集也是一对匹配的括号。

算法:

  1. 声明一个堆栈(比如 stack)。
  2. 现在遍历字符串输入。
  • a)如果当前字符是起始括号(即 ( 或 { 或 [),则将其推入堆栈。
  • b)如果当前字符是结束括号(即 ) 或 } 或 ]),则从堆栈弹出。如果弹出的字符是匹配的起始括号,那么其他的括号是 not balanced。
  • c)如果当前字符是右括号(即 ) 或 } 或 ])并且堆栈为空,则括号为 not balanced。
  1. 完成遍历后,如果堆栈中还有一些起始括号,则字符串为 not balanced 否则我们有一个 balanced 字符串。