一. 题目描述
1.1 题干信息
给定 有效括号字符串 s,返回 s 的 嵌套深度。嵌套深度是嵌套括号的最大数量。
1.2 示例
输入 :s = "(1+(2*3)+((8)/4))+1"
输出 :3
解释:数字 8 在嵌套的 3 层括号中。
输入 :s = "(1)+((2))+(((3)))"输出 :3
解释:数字 3 在嵌套的 3 层括号中。
输入 :s = "()(())((()()))"输出:3
1.3 提示
- 1 ≤ s . l e n g t h ≤ 100 1 \le s.length \le 100 1≤s.length≤100
- s 由数字 0-9 和字符 '+'、'-'、'*'、'/'、'('、')' 组成
- 题目数据保证括号字符串 s 是 有效的括号字符串
二. 储备知识------栈
2.1 参考视频
这个栈的知识算是数据结构的很基础的内容了,我当初是跟着王道学的数据结构,所以没有其他的参考视频,如果有需要的话可以参考王道bilibili教学视频,链接如下:
王道计算机考研 数据结构
三. 首战告捷
最开始想的还是直接建立栈,然后写着写着发现,栈会额外增加空间,而且不会节省时间,所以写代码的过程中就把栈的代码给删了,啊对,实际上python的列表和栈都可以用list来实现,不像C/C++那样,不过个人建议,学数据结构的时候,还是用C/C++比较好,我当初学的时候用的就是C, 因为我感觉用python的话,学数据结构会让懒惰占上风。好嘞,闲话少说,上代码
python
class Solution:
def maxDepth(self, s: str) -> int:
cursion = 0
max_cursion = 0
for x in s:
if x == "(":
cursion += 1
max_cursion = max(max_cursion, cursion)
elif x == ")":
cursion -= 1
return max_cursion
四. 官方题解
官方题解如下,顺便感觉还是把官方题解的水印加上吧,正规一点。
python
class Solution:
def maxDepth(self, s: str) -> int:
ans, size = 0, 0
for ch in s:
if ch == '(':
size += 1
ans = max(ans, size)
elif ch == ')':
size -= 1
return ans
作者:力扣官方题解
链接:https://leetcode.cn/problems/maximum-nesting-depth-of-the-parentheses/solutions/1194617/gua-hao-de-zui-da-qian-tao-shen-du-by-le-av5b/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
五. 写在最后

凡人终将灭亡。但即使注定灭亡,我们也应奋斗;如果徒劳无功是我们的命运,那么只要有任何收获就都算是公平的奖励。
------《能量与文明》