题解 | #有效括号序列#

有效括号序列

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

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param s string字符串
 * @return bool布尔型
 */
//s为字符串

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
bool isValid(char* s ) {
    // write code here
    //获取s字符串的长度
    int len = strlen(s);
    if (len == 0) {
        return true;
    }
    //长度为奇数
    else if (len % 2 != 0) {
        return false;
    }
    //用栈的方法,top指针
    char Stack[10000];
    int top = -1;//栈为空
    for (int i = 0; i < len ; i++) {
        //将左括号放入栈中
        if (s[i] == '{' || s[i] == '(' ||s[i] == '[') {
            Stack[ ++ top] = s[i];
            continue;
        }
        //判断栈是否为空
        if (top == -1) {
            return false;
        }
        //先不要用==,用!=可以排除多种情况,比较栈顶元素
        if (s[i] == ')' && Stack[top] != '(' ||s[i] == '}' && Stack[top] != '{' ||s[i] == ']' && Stack[top] != '[' ) {
            return false;
        }
        top --;//进行下一轮查找

    }
      //要判断栈顶是否为空,避免输入多个一样的括号
        if (top != -1) {
            return false;
        }
    return top == -1;//将元素弹出,栈顶为空
}

全部评论

相关推荐

07-07 12:47
门头沟学院 Java
码农索隆:竟然还真有卡体检报告的
点赞 评论 收藏
分享
Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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