在写代码时,你很容易就检查出你的括号写对了是否,
如果是在现实中,你每次只能写一个,你该如何检查呢
这就需要括号匹配算法了,
括号匹配需要一个栈储存未被配对的括号
假设有大中小括号,不一定按顺序,随便摆
但不可交叉,每种括号必是双数
0 | 1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|---|
栈 | ( | ([ | ( | ({ | ( | 空 |
原字符串 | ( | [ | ] | { | } | ) |
每次遇到括号,如果栈里有,栈弹出
否则, 入栈
最后检查栈是否为空,空就Yes,不空就No
在写代码时,你很容易就检查出你的括号写对了是否,
如果是在现实中,你每次只能写一个,你该如何检查呢
这就需要括号匹配算法了,
括号匹配需要一个栈储存未被配对的括号
假设有大中小括号,不一定按顺序,随便摆
但不可交叉,每种括号必是双数
0 | 1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|---|
栈 | ( | ([ | ( | ({ | ( | 空 |
原字符串 | ( | [ | ] | { | } | ) |
每次遇到括号,如果栈里有,栈弹出
否则, 入栈
最后检查栈是否为空,空就Yes,不空就No