当前位置: 首页 > news >正文

好未来0520上机考试题1:括号的最大嵌入深度

题目

(LeetCode 1614.括号的最大嵌入深度)

给定 有效括号字符串 s,返回 s 的嵌套深度。嵌套深度是嵌套括号的最大数量。

示例 1:

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

输出:3

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

示例 2:

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

输出:3

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

示例 3:

输入:s = "()(())((()()))"

输出:3

解答

我们使用一个变量`current_depth`来跟踪当前的嵌套深度,用`max_depth`记录遇到的最大深度。

遍历字符串中的每个字符:

- 如果遇到左括号'(',则当前深度加1,并更新最大深度(因为进入了一层新的嵌套)。

- 如果遇到右括号')',则当前深度减1(表示退出一层嵌套)。

- 其他字符(如数字、运算符)不影响深度,直接跳过。

注意:题目保证括号是有效的,所以不会出现不匹配的情况,因此我们不需要检查在减深度时是否会出现负数。

代码实现:

class Solution:def maxDepth(self, s: str) -> int:current_depth = 0max_depth = 0for char in s:if char == '(':current_depth += 1max_depth = max(max_depth, current_depth)elif char == ')':current_depth -= 1return max_depthif __name__ == "__main__":solution = Solution()s = "(1+(2*3)+((8)/4))+1"print(solution.maxDepth(s))  # 输出:3
http://www.lqws.cn/news/205723.html

相关文章:

  • 微服务架构的性能优化:链路追踪与可观测性建设
  • # STM32F103 SD卡读写程序
  • [NOI2016] 网格
  • C++ 中的编译期计算(Compile-Time Computation)
  • 22、模板特例化
  • 双面沉金线路板制作流程解析:高可靠性PCB的核心工艺
  • bat批量去掉本文件夹中的文件扩展名
  • 数据类型 -- 字符
  • Python基于Django的文件销毁系统【附源码、文档说明】
  • 操作系统进程管理解析:从 fork 到 exec 的全流程实战与底层原理
  • Unity | AmplifyShaderEditor插件基础(第五集:简易膨胀shader)
  • ThingsCloud事物云平台搭建-微信小程序
  • 【基础算法】差分算法详解
  • 【Linux】SSH:免密登录
  • Design Theory and Method of Complex Products: A Review
  • 数据通信基础
  • 【51单片机】2. 进阶点灯大师
  • AI浪潮下的IT行业:威胁、转变与共生之道
  • 小白成长之路-Linux Shell脚本练习
  • PC与Windows远程连接与串流:方案简介(ZeroTier + Parsec、Moonlight + Sunshine、网易UU远程)
  • Vue3 项目的基本架构解读
  • CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)
  • C# 类和继承(扩展方法)
  • React Hooks 示例项目
  • 基于 STM32 的四路 PWM 控制智能小车运动的模块化控制程序
  • natapp 内网穿透失败
  • 基于 TAPD 进行项目管理
  • [论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
  • ubuntu中使用docker
  • 如何在Unity中实现点击一个按钮跳转到哔哩哔哩