leetcode 1614.括号的最大嵌套深度

⭐️ 题目描述

leetcode 1614.括号的最大嵌套深度_第1张图片
leetcode 1614.括号的最大嵌套深度_第2张图片


leetcode链接:括号的最大嵌套深度

ps: 使用数据结构栈来存储 ( 在使用 maxDepth 变量记录栈顶 top 的最大值,当遇到 ) 时删除栈顶元素。举个例子 (1)+((2))+(((3))),当遇到第一个 (top = 1maxDepth = 1 代表嵌套深度最大为 1 ,遇到 1的右括号时出栈 top = 0,在接着遇到 (( top = 2,这时嵌套深度说明是 2,所以 maxDepth 取的是 topmaxDepth 的较大值。以此类推……

代码:

int maxDepth(char * s){
    int size = strlen(s);
    char * stack = (char*)malloc(sizeof(char) * size + 1); // 模拟栈

    int top = 0;
    int maxDepth = 0;
    for (int i = 0; i < size; i++) {
        if (s[i] == '(') {
            // 入栈
            stack[top++] = s[i];
            // 取当前栈的高度
            maxDepth = maxDepth > top ? maxDepth : top;
        } else if (s[i] == ')') {
            // 删除栈顶元素
            top--;
        }
    }

    free(stack);
    return maxDepth;
}

你可能感兴趣的:(刷题,leetcode,刷题,栈)