Parenthesis/Brackets 使用堆栈算法匹配和最大元素

Parenthesis/Brackets Matching and Maximum Elements using Stack algorithm

问题:假设我们要使用堆栈处理这个表达式 ( [ ( { [ ] [ ] } ( ( ( ) ) ) ) { } ] )。任一时刻栈上元素的最大数量是多少?

我知道堆栈按 LIFO 顺序运行,所以我不确定如何将它与最大元素数相匹配,以及它与表达式有何关系。这个问题对我来说不清楚。请问您怎么看?

我试图回答它并得到 9,但我发现根据我得到的答案,堆栈中任何时候的最大元素数是 6。

如果你有左括号,你把它放在堆栈上。如果你有一个右括号与堆栈顶部的左括号匹配,你就从堆栈中弹出这个括号,否则你就把它放在堆栈上。在此表达式中,堆栈将如下所示:

  • (
  • ( [
  • ( [ (
  • ( [ ( {
  • ( [ ( { [
  • ( [ ( {
  • ( [ ( { [
  • ( [ ( {
  • ( [ (
  • ( [ ( (
  • ( [ ( ( (
  • ( [ ( ( ( (
  • ( [ ( ( (
  • ( [ ( (
  • ( [ (
  • ( [
  • ( [ {