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

百度二面算法:合法的括号字符串(贪心解法)

目录标题

  • 1.题目
    • 1.1示例
  • 2.利用贪心算法求解
    • 2.1 代码结构分析
      • 2.1.1 代码优缺点
      • 2.1.2 星号的角色分析
        • 2.1.2.1 处理星号的逻辑
        • 2.1.2.2 整体逻辑
        • 2.1.2.3 代码逻辑总结
    • 2.2 贪心的策略体现
      • 2.2.1 贪心策略的应用

1.题目

给定一个字符串s,字符串s只包含以下三种字符: (,*,),请你判断 s是不是一个合法的括号字符串。合法括号字符串有如下规则:

  1. 左括号’(‘必须有对应的右括号’)’
  2. 右括号’)‘必须有对应的左括号’(’
  3. 左括号必须在对应的右括号前面
  4. *可以视为单个左括号,也可以视为单个右括号,或者视为一个空字符
    5.空字符串也视为合法的括号字符串

1.1示例

示例1

输入:"()()"
返回值:true

示例2

输入:"((*)"
返回值:true

示例3

输入:"(((*)"
返回值:false

2.利用贪心算法求解

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param s string字符串* @return bool布尔型*/public boolean isValidString (String s) {//待消除左括号的最小个数int minCount=0;//待消除左括号的最大个数int maxCount=0;int n=s.length(

http://www.mrgr.cn/news/61575.html

相关文章:

  • Element-plus、Element-ui之Tree 树形控件回显Bug问题。
  • 西电-神经网络基础与应用-复习笔记
  • ELFK日志采集实战
  • 人工智能学习路线全链路解析
  • 标准应用 | 2025年网络安全服务成本度量实施参考
  • java1-相对路径与绝对路径
  • 【机器学习】环境搭建及Sklearn鸢尾花数据集
  • Python | Leetcode Python题解之第519题随机翻转矩阵
  • Python中的切片是什么,它有什么用处?
  • 25_DNS:域名系统详解
  • C++ | Leetcode C++题解之第519题随机翻转矩阵
  • windows 驱动实例分析系列: NDIS 6.0的Filter 驱动改造(四)
  • Java | Leetcode Java题解之第520题检测大写字母
  • Linux(一)
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(五)使用 validation 验证参数
  • C++核心编程和桌面应用开发 第十七天(set和multiset容器 pair map和multimap容器)
  • Json库和文件操作
  • Cargo 的工作机制
  • 一道巧妙的卡特兰数建模
  • 聊聊解构的那些事
  • 本篇文章来介绍下dockerfile
  • LeetCode 热题 100 回顾2
  • Golang | Leetcode Golang题解之第519题随机翻转矩阵
  • 速盾:海外高防CDN有哪些优势?
  • SpringBoot篇(自动装配原理)
  • 〈壮志凌云:独行侠〉中的超高音速战机