力扣刷题之路-括号匹配问题

括号匹配问题在力扣中有好几道,简单的括号匹配问题即一个左括号需要对应一个右括号,判断是否匹配或者需要加入几个左括号或右括号,此时的问题比较简单,当字符串中的字符只有一种类型的括号时,直接用一个变量存储需要的左括号或者右括号数量即可,当有多种括号类型时,可以利用栈保存字符串数组中的字符,根据栈后进先出的特点,检查括号是否匹配。

这个问题的解决比较简单,因为只有一种类型的括号,且一个左括号必须对应一个右括号。使用left变量记录左括号的需求量,使用right变量记录右括号的需求量。当是左括号的时候,right+1;当是右括号的时候,right-1,且当right为-1的时候,表示此时右括号的数量已经比左括号多了,此时left需要+1,且right变为0。

public int minAddToMakeValid(String s) {
        int left = 0;
        int right = 0;
        for(char ch:s.toCharArray()){
            if(ch=='(') right++;
            else {
                right--;
                if(need==-1) {
                    left++;
                    right=0;
                }
            }
        }
        return (left+right);
    }

力扣刷题之路-括号匹配问题

这个题和上一道题目的思想差不多,但是这道题是一个左括号对应两个右括号。仍然使用两个变量left和right分别记录左右括号所需量。遇到右括号的情况和上边一样,当right=-1时说明右括号太多了,需要一个左括号,且因为一个左括号对应两个右括号,此时右括号的需求变成1。当是左括号的时候,如果右括号的需求是奇数,则表示前面差一个右括号,此时用temp来记录此左括号之前差一个右括号,且右括号的总需求-1。(直接用left变量来存储也是可以的,因为left变量只进行了加法,其他时候并没有进行修改)

力扣刷题之路-括号匹配问题
public int minInsertions(String s) {
        int left=0,right=0,temp=0;
        for(char ch: s.toCharArray()){
            if(ch=='(') {
                right += 2;
                if(right%2!=0){
                    temp+=1;
                    right-=1;
                }
            }
            else {
                right--;
                if(right==-1){
                    //此时说明右括号太多了
                    left++;
                    right=1;
                }
            }
        }
        return left+right+temp;
    }

Original: https://www.cnblogs.com/boboray/p/16344007.html
Author: 啵啵ray
Title: 力扣刷题之路-括号匹配问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685592/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Flink问题总结

    多线程提交多个flinkJob flink从kafka接收脏数据后一直restarting springboot项目日志与flink日志冲突 如果代码只是flinkJob代码,要保…

    技术杂谈 2023年7月11日
    071
  • 如何才能更好地于其他团队的人沟通–Opay大神

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    073
  • dns ping

    :: :: Posted on2022-05-22 19:00 季枫 阅读(12 ) 评论() 编辑 https://tool.chinaz.com/dns/?type=1&amp…

    技术杂谈 2023年5月30日
    089
  • 设计模式 16 命令模式

    命令模式(Command Pattern)属于 行为型模式 概述 现在各大电子厂商都在推智能家居,即可以通过手机这一个终端控制多个家用电器,比之前的单个设备智能由对应遥控器控制的方…

    技术杂谈 2023年7月25日
    092
  • linux bash 手册

    1、Linux shell简介 shell是一种特殊的交互式工具,包含了一组内部命令,这些命令可以完成复制文件,移动文件,显示和终止程序等操作。shell的核心是命令行提示符,它允…

    技术杂谈 2023年7月11日
    090
  • LRU算法简单实现

    LRU:最近最少使用缓存 LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访…

    技术杂谈 2023年6月21日
    0112
  • DateTimeFormatter.BASIC_ISO_DATE

    DateTimeFormatter (Java Platform SE 8 ) (oracle.com) 作者:习惯沉淀 如果文中有误或对本文有不同的见解,欢迎在评论区留言。 如果…

    技术杂谈 2023年6月1日
    092
  • Maven中基于POM.xml的Profile来动态切换配置信息

    【转载:https://blog.csdn.net/blueheart20/article/details/52838093】 Maven中的profile设置 Maven是目前主…

    技术杂谈 2023年5月30日
    099
  • 【HMS core】【Analytics Kit】【FAQ】如何解决华为分析付费分析中付款金额显示为0的问题?

    ​ 1、问题描述 用户在自有应用中接入了华为分析SDK,想要通过华为分析来监测分析相关的事件和数据。在AGC控制台找到自己的项目,然后点击华为分析,找到行为分析,查看付费分析一栏的…

    技术杂谈 2023年5月31日
    096
  • GPS的调试与报文解析

    GPS的调试与报文解析 来源 https://zhuanlan.zhihu.com/p/450203417 1.驱动与软件 直接用串口助手的话,可看到GPS发送的信息。当然串口可以…

    技术杂谈 2023年5月30日
    0106
  • Qt 保持窗口顶层显示最简单方法

    情景: 当前存在两个窗口或以上,先初始化的窗口会被后初始化的窗口覆盖,从而置于底层, 这时一个最简单的方案就是给需要置于顶层的窗口配置事件过滤器,监听窗口状态,当窗口不属于顶层窗口…

    技术杂谈 2023年7月11日
    075
  • BI 如何让SaaS产品具有 “安全感”和“敏锐感”(上)

    SaaS模式一经推出,凭借自身的高性价比、低维护成本,无需软硬件维护、无需运维等明晃晃的优点,得到了爆发式的增长,甚至全面改变了软件的开发模式。各位老总的问候语,不知从什么时候开始…

    技术杂谈 2023年5月30日
    087
  • 网络流量测试工具

    网络流量测试工具 来源 https://www.cnblogs.com/qq952693358/p/7633259.html 评估测试的手段有以下这些(分类不完全科学,以尽量表现特…

    技术杂谈 2023年5月31日
    0135
  • Kubernetes 基础概念整理

    K8S基础组件 整个集群的控制中枢 集群控制中枢,各个模块之间的信息交互都需要经过Kube-APIServer,同时也是集群管理,资源配置,集群安全机制的入口 集群的状态管理器,保…

    技术杂谈 2023年7月11日
    065
  • FTP文件服务的安装与部署

    FTP(文件传输协议)概念 FTP基于C/S模式,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式,主被动模式均是以FTP服务器端为参照。企业实际环境中,…

    技术杂谈 2023年7月11日
    086
  • 编写支持SSR的通用组件指南

    原文来自:https://blog.lichter.io/posts/the-guide-to-write-universal-ssr-ready-vue-compon? utm …

    技术杂谈 2023年5月31日
    0102
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球