在数学上,我们经常能遇到有关表达式的出现。在一个表达式中,为了表示运算符的运算优先级,常常会引入小括号 ()
和中括号 []
用以辅助。
如表达式:[(A + B) * C] - [E - F]
,我们可以将其中的小括号和中括号提取出来:[ () ] [ ]
。我们称这样的序列为 括号匹配序列。
-
匹配序列
( [ ( ) ] )
[ ] [ ] ( )
( ) [ ( ) ]
-
不匹配序列
( [ ( ) ]
] [ ] ( )
( ] [ ( ) ]
1 2 3 4 5 6
[ ( ) ] [ ]
算法思想:
-
初始化一个空栈,顺序读入括号。
-
若是右括号,则与栈顶元素进行匹配
-
若匹配,则弹出栈顶元素并进行下一个元素
-
若不匹配,则该序列不合法
-
-
若是左括号,则压入栈中
-
若全部元素遍历完毕,栈中非空,则序列不合法
-
C 语言算法
源文件地址,/codes/3/栈——括号匹配验证.c
-
Python 算法
源文件地址,/codes/3/栈——括号匹配验证.py
xxx
-
xxxx( )
A. xxx
B. XX
C. Xx
D. xX查看解析
答案:x
-- 完 --