流程如下:
1、检测括号输入。
若有括号输入则向下执行,
若没有则转向 6 。(没有说明字符数组内无括号)
2、判断是否为左括号。
如果为左括号则压入栈顶,转向 1 ,
如果不为左括号(右括号),转向 4 。
4、判断栈是否为空。(检测栈内有无左括号与其配对)
为空则返回 false ,
不为空则向下执行。
5、判断该右括号是否与栈顶括号配对。
配对则转向 1 ,
不配对则返回 false。
6、判断栈内是否为空。(检测有无未处理括号(一般为左括号))
为空则返回 true ,
不为空则返回 false 。
相关代码:
//括号匹配
bool bracketCheck(string str, int len) {
//创建一个栈
SqStack sq;
InitStack(sq);
//循环判断
for (int i = 0; i < len; i++)
{
if (str[i] == '(' ||