前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 1614. 括号的最大嵌套深度

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

原创
作者头像
freesan44
修改2021-09-07 18:06:35
3280
修改2021-09-07 18:06:35
举报
文章被收录于专栏:freesan44freesan44

题目

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

字符串是一个空字符串 "",或者是一个不为 "(" 或 ")" 的单字符。

字符串可以写为 AB(A 与 B 字符串连接),其中 A 和 B 都是 有效括号字符串 。

字符串可以写为 (A),其中 A 是一个 有效括号字符串 。

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

depth("") = 0

depth(C) = 0,其中 C 是单个字符的字符串,且该字符不是 "(" 或者 ")"

depth(A + B) = max(depth(A), depth(B)),其中 A 和 B 都是 有效括号字符串

depth("(" + A + ")") = 1 + depth(A),其中 A 是一个 有效括号字符串

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

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

代码语言:txt
复制
示例 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 是 有效的括号表达式

解题思路

代码语言:txt
复制
class Solution:
    def maxDepth(self, s: str) -> int:
        # 栈的形式来记录
        maxRet = 0
        tempCount = 0
        for i in s:
            if i == "(":
                tempCount += 1
            elif i == ")":
                if maxRet < tempCount:
                    maxRet = tempCount
                tempCount -= 1
        return maxRet



if __name__ == '__main__':
    s = "(1+(2*3)+((8)/4))+1"
    ret = Solution().maxDepth(s)
    print(ret)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 解题思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档