题解 | 有效括号序列

有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param s string字符串
 * @return bool布尔型
 */
#include <stdbool.h>
#include <string.h>
bool isValid(char* s ) {
    // write code here
    char stack[10000];
    int top = -1;
    for (int i = 0; i < strlen(s); i++) {
        if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
            top++;
            stack[top] = s[i];
        }
        if (s[i] == ')') {
            if (stack[top] == '(') {
                top--;
            } else {
                return false;
            }
        }
        if (s[i] == ']') {
            if (stack[top] == '[') {
                top--;
            } else {
                return false;
            }
        }
        if (s[i] == '}') {
            if (stack[top] == '{') {
                top--;
            } else {
                return false;
            }
        }
    }
    if(top==-1){
        return true;
    }
    return false;
}

本题用数组来代表栈,遍历字符串,当是左括号字符时入栈,当是右括号字符时判断栈顶是否为相应的左括号,不是则返回false;最后遍历完后判断栈是否为空(判断是否有多出来的括号),空则表示全部匹配完毕,return true,否则return true。

全部评论

相关推荐

今天 11:29
门头沟学院 Java
点赞 评论 收藏
分享
07-09 20:50
门头沟学院 Java
码农索隆:1.教育背景和荣誉证书合二为一。 2.获奖项目理一遍,你做了什么,对你求职的岗位有什么帮助,没有就删掉。 3.技能特长和教育背景交换位置。 4.技能特长写的太差,上网上找简历参考。都不用问你别的,一个redis就能把你问住,写写你具体会redis哪些方面的知识。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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