【力扣时间】【1614】【简单】括号的最大嵌套深度

周五了,好耶ヾ(✿゚▽゚)ノ

1、看题

在这

题目如此之长,然而几乎都是废话。
让我们来看看重点。

2、审题

题目列举了很多说明来解释何为 有效括号字符串,何为 嵌套深度
这些概念固然是解题的重点,但没必要浪费过多口舌。

在厘清了这些概念后,并去掉冗余的说明后,我们需要处理的实际上就只有括号了。

3、思路

明显,这道题也可以使用栈来实现。
由于我们需要知道括号的嵌套深度,而题目又保证了输入的字符串是有效的括号字符串。这意味着有左括号就一定会有对应的右括号。

而如何知道嵌套深度呢?
我们只需要在遇到左括号时,把它放入栈内,遇到右括号时,将栈内的左括号出栈。
而栈内的左括号数量最多的时刻,即为最大的嵌套深度。

觉得这就可以了?
不,其实我们只用沿用栈的思想即可,由于我们的栈内只用存放左括号,并且无需知道左括号出现的位置,所以我们根本无需动用到栈,只用一个计数器来记录左括号的次数即可。
每次遇到左括号,将计数器加一。遇到右括号时,记录当前的计数器数量的最大值,然后将计数器减一。

这就是这题的解法了。

4、动手!

class Solution {

    private static final Character LEFT = '(';

    private static final Character RIGHT = ')';

    public int maxDepth(String s) {
        int maxDepth = 0;
        int curDepth = 0;
        for (char c : s.toCharArray()) {
            //只有左括号才压入栈内
            if (c == LEFT) {
                curDepth++;
            }

            if (c == RIGHT) {
                maxDepth = Math.max(maxDepth, curDepth);
                curDepth--;
            }
        }

        return maxDepth;
    }
}

嗯。我觉得思路里已经解释得很清楚了,应该无需再多解读什么。

5、提交

在这里插入图片描述

当然如此!

6、咀嚼

一次遍历,时间复杂度为O(N)
仅使用了两个计数器,空间复杂度为 O(1)

7、康康大牛

嗯。
简单道大家的做法都是完全一样的思路。
吼!看我的就行!

8、总结

感觉周五基本上都是简单题啊。
毕竟也是劳累了一周了,就这样放松放松迎来下一周的工作吧。

社畜们!下班了!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值