题解 | #有效括号序列#

有效括号序列

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
}

全部评论

相关推荐

01-01 23:23
复旦大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务