检查平衡括号

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

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

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

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

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

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

算法:

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