题解 | #有效括号序列#
有效括号序列
https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return bool布尔型
*/
#include <stdbool.h>
#define MAX 10000
char panduan(char c){ //测姻缘,看看你的另一半是谁
if(c == ']'){
return '[';
}
if(c == ')'){
return '(';
}
if(c == '}'){
return '{';
}
return 0;
}
bool isValid(char* s ) {
char a[MAX]; //辅助数组(做栈用)
int top = 0; //辅助数组的指针(栈顶指针)
int i = 0; //遍历s的指针
while (s[i] != 0) { //遍历s,记得while中最后一行的i++
a[top] = s[i]; //入栈
top++; //栈顶指针指向栈顶的下一个位置
if(top>=2 && panduan(a[top-1]) == a[top-2]){ //如果有两个以上的元素且最上边俩是一对
top -= 2; //最上边俩出栈
}
i++;
}
return top!=0?false:true; //三目表达式,如果全部入栈完后,辅助数组(栈)为空,则为有效
}
#23届找工作求助阵地#