检查括号匹配,形如如下的字符串:
[([][])] 认为是匹配的。
而[(][])这种认为是不匹配的。
算法很简单,就是栈:
(1)如果是左括号([{等,直接入栈(使得原有在栈中的所有未消解的期待括号的紧迫级别下降一位)。
(2)如果是右括号,比如],则栈顶要么是与它匹配的左括号如[,否则就是括号不匹配。
(3)如果所有字符串都处理完,栈是空的,则是匹配的,否则不匹配。
代码如下:
// 1 for succ, 0 for false
int kuo[......]
检查括号匹配,形如如下的字符串:
[([][])] 认为是匹配的。
而[(][])这种认为是不匹配的。
算法很简单,就是栈:
(1)如果是左括号([{等,直接入栈(使得原有在栈中的所有未消解的期待括号的紧迫级别下降一位)。
(2)如果是右括号,比如],则栈顶要么是与它匹配的左括号如[,否则就是括号不匹配。
(3)如果所有字符串都处理完,栈是空的,则是匹配的,否则不匹配。
代码如下:
// 1 for succ, 0 for false
int kuo[......]
main.cpp:主程序
//Stack.h参见本分类其它栈问题的记录。
#include "../第三章 顺序栈的基本操作/Stack.h"
using namespace std;
int main()
{
Stack S;
InitStack(S);
int tmp;
char c;
while((c=getchar())!='\n')
{
&nbs[......]