Skip to content

Latest commit

 

History

History
96 lines (61 loc) · 1.88 KB

3.3.1 栈在括号匹配中的应用.md

File metadata and controls

96 lines (61 loc) · 1.88 KB


3.3.1 栈在括号匹配中的应用


  在数学上,我们经常能遇到有关表达式的出现。在一个表达式中,为了表示运算符的运算优先级,常常会引入小括号 () 和中括号 [] 用以辅助。

  如表达式:[(A + B) * C] - [E - F],我们可以将其中的小括号和中括号提取出来:[ () ] [ ]。我们称这样的序列为 括号匹配序列

  • 匹配序列

    ( [ ( ) ] )[ ] [ ] ( )( ) [ ( ) ]

  • 不匹配序列

    ( [ ( ) ]] [ ] ( )( ] [ ( ) ]


1  2  3  4  5  6
[  (  )  ]  [  ]

算法思想:

  1. 初始化一个空栈,顺序读入括号。

  2. 若是右括号,则与栈顶元素进行匹配

    • 若匹配,则弹出栈顶元素并进行下一个元素

    • 若不匹配,则该序列不合法

  3. 若是左括号,则压入栈中

  4. 若全部元素遍历完毕,栈中非空,则序列不合法



💡 题型

  xxx

单项选择题

  1. xxxx( )

    A. xxx
    B. XX
    C. Xx
    D. xX

    查看解析

    答案:x


-- 完 --