题目:
表达式合法判断
写一段代码,判断一个包括’{‘,’[‘,’(‘,’)’,’]’,’}’的表达式是否合法(注意看样例的合法规则。)
给定一个表达式A,请返回一个bool值,代表它是否合法。 测试样例: “[a+b*(5-4)]{x+b+b({1+2)}}”
返回:true 测试样例: “[a+b*(5-4)]{x+b+b(({1+2)}}” 返回:false
分析:
1、通过用例可以判断出,不用纠结三种括号的对应,只要求正括号和反括号对应即可。
2、用栈来解决这个问题非常适合。
// int *array = new int[n];//设立一个栈
int top = 0;//栈顶指针
……
else if (c == 1){
//当找到正括号时