1614. 括号的最大嵌套深度 :简单模拟题

简介: 1614. 括号的最大嵌套深度 :简单模拟题

网络异常,图片无法展示
|

题目描述



这是 LeetCode 上的 1614. 括号的最大嵌套深度 ,难度为 简单


Tag : 「模拟」


如果字符串满足以下条件之一,则可以称之为 有效括号字符串(valid parentheses string,可以简写为 VPS):


  • 字符串是一个空字符串 "",或者是一个不为 "("")" 的单字符。
  • 字符串可以写为 ABAB 字符串连接),其中 AB 都是 有效括号字符串 。
  • 字符串可以写为 (A),其中 A 是一个 有效括号字符串 。


类似地,可以定义任何有效括号字符串 S 的 嵌套深度 depth(S)


  • depth("") = 0
  • depth(C) = 0,其中 C 是单个字符的字符串,且该字符不是 "(" 或者 ")"
  • depth(A + B) = max(depth(A), depth(B)),其中 AB 都是 有效括号字符串
  • depth("(" + A + ")") = 1 + depth(A),其中 A 是一个 有效括号字符串


例如:"""()()""()(()())" 都是 有效括号字符串(嵌套深度分别为 0、1、2),而 ")(""(()" 都不是 有效括号字符串 。


给你一个 有效括号字符串 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 <= 1001<=s.length<=100
  • s 由数字 0-9 和字符 '+''-''*''/''('')' 组成
  • 题目数据保证括号表达式 s 是 有效的括号表达式


模拟



根据题意,其实就是求最大的连续左括号的数量(跳过普通字符,且与 ) 抵消后),只需要边遍历边统计即可。


代码:


class Solution {
    public int maxDepth(String s) {
        int n = s.length(), ans = 0;
        for (int i = 0, cnt = 0; i < n; i++) {
            if (s.charAt(i) == '(') cnt++;
            else if (s.charAt(i) == ')') cnt--;
            ans = Math.max(ans, cnt);
        }
        return ans;
    }
}
复制代码


  • 时间复杂度:O(n)O(n)
  • 空间复杂度:O(1)O(1)


最后



这是我们「刷穿 LeetCode」系列文章的第 No.1614 篇,系列开始于 2021/01/01,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先把所有不带锁的题目刷完。


在这个系列文章里面,除了讲解解题思路以外,还会尽可能给出最为简洁的代码。如果涉及通解还会相应的代码模板。


为了方便各位同学能够电脑上进行调试和提交代码,我建立了相关的仓库:github.com/SharingSour…


在仓库地址里,你可以看到系列文章的题解链接、系列文章的相应代码、LeetCode 原题链接和其他优选题解。

相关文章
|
4月前
for循环嵌套for循环与递归的区别
for循环嵌套for循环与递归的区别
|
3月前
|
语音技术 数据安全/隐私保护
语音识别,猜猜心里数字讲解,猜数字的组合,判断语句的嵌套,嵌套语句使用很简单,我们写一个外层嵌套的条件,利用缩进,满足条件,才会执行条件2,判断语句综合案例,如何产生变量的随机数字,while循环应用
语音识别,猜猜心里数字讲解,猜数字的组合,判断语句的嵌套,嵌套语句使用很简单,我们写一个外层嵌套的条件,利用缩进,满足条件,才会执行条件2,判断语句综合案例,如何产生变量的随机数字,while循环应用
|
5月前
|
C语言
C语言函数嵌套与递归调用的深入解析
C语言函数嵌套与递归调用的深入解析
51 0
|
5月前
|
算法 Java 定位技术
嵌套for循环的基础直角三角形——四个方向打印
嵌套for循环的基础直角三角形——四个方向打印
82 0
|
5月前
leetcode-1614:括号的最大嵌套深度
leetcode-1614:括号的最大嵌套深度
36 0
|
5月前
|
Java 程序员
for循环语句(详解+典例)
for循环语句(详解+典例)
75 0
|
12月前
链表翻转循环和递归写法(画图分析)
链表翻转循环和递归写法(画图分析)
30 0
|
Go Cloud Native
856. 括号的分数:栈的思想
这是 力扣上的 856. 括号的分数:,难度为 中等。
856. 括号的分数:栈的思想
|
Python
while循环的妙用
while循环的妙用
79 1