题解 | #有效括号序列#
有效括号序列
https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2
使用临时栈
循环插入栈内
每一次循环都会进行判断栈顶和栈顶-1是否匹配如果匹配则 出栈2位
循环结束还需要再判断一轮 用于最后一组
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return bool布尔型
*/
#include <stdlib.h>
bool isCorrespond(char b, char a) {
if ( (a == '(' && b == ')')
|| (a == '[' && b == ']')
|| (a == '{' && b == '}')
) {
return true;
}
return false;
}
bool isValid(char* s ) {
int temp = 0;
char* data = (char*)malloc(10000);
int dataTop = 0;
while (s[temp] != '\0') {
data[dataTop] = s[temp];
dataTop++;
temp++;
if (isCorrespond(data[dataTop - 1], data[dataTop - 2]) && dataTop >= 2) {
dataTop -= 2;
}
}
if (isCorrespond(data[dataTop - 1], data[dataTop - 2]) && dataTop >= 2) {
dataTop -= 2;
}
return dataTop == 0 ? true : false;
// write code here
}