问题描述
- 输入一字符串,检查字符串中 { }、[ ]、( ) 三种括号是否成对出现。不同括号间不能交叉出现且左右括号顺序不能颠倒,如 ) (、{ ( } )等。
- 匹配示例:{ ( ) } ,{ [ ( ) ] }等
解决方法
- 利用栈的特性,发现左括号就入栈,然后检索到右括号与栈顶的左括号比对,如果为同一种括号则栈顶括号出栈;如果不是同一种括号(交叉)或者栈为空(只有右括号)则匹配失败。
- 最后若栈空则说明括号匹配成功

代码
#include <stdio.h>
#include <string.h>
/******************用数组实现栈的函数*******************/
struct stack //存放栈的信息
{
int top;
char *bottom;
int size;
};
int IsEmpty(struct stack *s) //判空
{
if (s->top == -1)
{
return 0;
}
else
{
return 1;
}
}
int push(struct stack *s, char x) //入栈
最低0.47元/天 解锁文章
1261

被折叠的 条评论
为什么被折叠?



