1614. 括号的最大嵌套深度

Posted 沧夜2021

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1614. 括号的最大嵌套深度相关的知识,希望对你有一定的参考价值。

1614. 括号的最大嵌套深度

题源

https://leetcode-cn.com/problems/maximum-nesting-depth-of-the-parentheses/

题目内容

原文的题目解释太绕了

反而有点难以理解

给你一个 有效括号字符串 s,返回该字符串的 s 嵌套深度 。

即返回字符串中某个数字被括号括住的最深深度。

示例

示例 1:

输入:s = "(1+(2*3)+((8)/4))+1"

输出:3

解释:数字 8 在嵌套的 3 层括号中.


示例 2:

输入:s = "(1)+((2))+(((3)))"

输出:3


示例 3:

输入:s = "1+(2*3)/(2-1)"

输出:1


示例 4:

输入:s = "1"

输出:0


提示:

  • 1 <= s.length <= 100

  • s 由数字 0-9 和字符'+'、'-'、'*'、'/'、'('、')'组成

  • 题目数据保证括号表达式 s是有效的括号表达式

思路

不必使用栈来写,直接按字符串的顺序从左到右遍历就可以了

  • 定义计数acount 和 答案 ans

  • 每碰到一个(acount+1

  • 每碰到一个)acount-1

  • ans 记录acount加加减减过程中的最大值

答案

class Solution 
public:
    int maxDepth(string s) 
        int n =s.size();
        int acount = 0;
        int ans = 0;
        for(int i = 0;i<n;i++)
        
            if(s[i]=='(')
                ans = max(acount+=1,ans);
            else if(s[i]==')')
                acount--;
        
        return ans;
    
;

以上是关于1614. 括号的最大嵌套深度的主要内容,如果未能解决你的问题,请参考以下文章

算法leetcode每日一练1614. 括号的最大嵌套深度

算法leetcode每日一练1614. 括号的最大嵌套深度

栈3:括号匹配问题的7道题

《LeetCode之每日一题》:259.括号的最大嵌套深度

有效括号的嵌套深度

华为机试真题 C++ 实现最大括号深度