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

有效括号相关

相关题目
20. 有效的括号
921. 使括号有效的最少添加
1541. 平衡括号字符串的最少插入次数
32. 最长有效括号

# 20. 有效的括号
class Solution:def isValid(self, s: str) -> bool:stack = []for pare in s:if pare in '([{':stack.append(pare)if not stack or (pare == ')' and stack[-1] != '('):return Falseelif not stack or (pare == ']' and stack[-1] != '['):return Falseelif not stack or (pare == '}' and stack[-1] != '{'):return Falseif pare in ')]}':stack.pop()return not stack
# 921. 使括号有效的最少添加
class Solution:def minAddToMakeValid(self, s: str) -> int:# 对左括号的需求res = 0# 对右括号的需求need = 0for c in s:if c == '(':# 右括号需求need += 1else:need -= 1if need == -1:need = 0# 需要插入一个左括号res += 1return res + need
# 1541. 平衡括号字符串的最少插入次数
class Solution:def minInsertions(self, s: str) -> int:# 对左括号的需求res = 0# 对右括号的需求need = 0for c in s:if c == '(':# 右括号需求need += 2if need % 2 == 1:# 插入一个右括号res += 1# 右括号需求减1need -= 1else:need -= 1if need == -1:# 需要插入一个左括号res += 1# 同时右括号的需求变为1need = 1return res + need
# 32. 最长有效括号
# 动态规划+栈
class Solution:def longestValidParentheses(self, s: str) -> int:# dp[i] 表示已s[i-1]结尾的最长合法括号子串的长度dp = [0] * (len(s) + 1)stk = []for idx, c in enumerate(s):if c == '(':# 遇到左括号,记录索引stk.append(idx)# 左括号结尾,不可能是有效合法括号dp[idx+1] = 0else:if stk:# 配对的左括号对应索引leftIndex = stk.pop()dp[idx+1] = (idx - leftIndex + 1) + dp[leftIndex]else:dp[idx+1] = 0return max(dp)
http://www.lryc.cn/news/181750.html

相关文章:

  • 浅谈泛型擦除
  • nodejs+vue校园跑腿系统elementui
  • Redis Cluster Cron调度
  • Redis Cluster Gossip Protocol: Message
  • 【JVM】第四篇 垃圾收集器ParNewCMS底层三色标记算法详解
  • STM32复习笔记(四):独立看门狗IWDG
  • SpringBoot中常用注解的含义
  • 学位论文的写作方法,较好的参考文章
  • 基于SpringBoot的科研工作量获奖项目管理平台设计与实现(源码+lw+部署文档+讲解等)
  • 嵌入式Linux应用开发-驱动大全-第一章同步与互斥④
  • 算法-数学-斜率-直线上最多的点数
  • 项目进展(五)-修复PCB电路板,学习32位ADC芯片ADS1285
  • (三) Markdown插入互联网或本地视频解决方案
  • HPA (Horizontal Pod Autoscaler) In K8s
  • Ubuntu安装samba服务器
  • [SpringBoot] 8. aop 获取 request response
  • 同学苹果ios的ipa文件应用企业代签选择签名商看看这篇文章你再去吧
  • 【PyCharm Community Edition】:excel操作
  • 证书显示未受信任,生成的证书过期
  • VS+Qt+C++ GDAL读取tif图像数据显示
  • CSS 选择器-认识并应用选择器
  • 【教程】Autojs使用OpenCV进行SIFT/BRISK等算法进行图像匹配
  • [庆国庆 迎国庆 发文]云计算的概念
  • 计算机网络-计算机网络体系结构-概述,模型
  • 对示例程序spinner_asyncio.py进行修改使其能运行
  • Linux命令(93)之head
  • 使用Visual Studio调试排查Windows系统程序audiodg.exe频繁弹出报错
  • WebSocket实战之六心跳重连机制
  • Webpack 基础入门以及接入 CSS、Typescript、Babel
  • postgresql-自增字段