首页 > 其他分享 >1541. 平衡括号字符串的最少插入次数

1541. 平衡括号字符串的最少插入次数

时间:2023-03-20 23:47:32浏览次数:58  
标签:index 1541 ++ 括号 字符串 平衡 left

给你一个括号字符串 s ,它只包含字符 '(' 和 ')' 。一个括号字符串被称为平衡的当它满足:

任何左括号 '(' 必须对应两个连续的右括号 '))' 。
左括号 '(' 必须在对应的连续两个右括号 '))' 之前。
比方说 "())", "())(())))" 和 "(())())))" 都是平衡的, ")()", "()))" 和 "(()))" 都是不平衡的。

你可以在任意位置插入字符 '(' 和 ')' 使字符串平衡。

请你返回让 s 平衡的最少插入次数。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-insertions-to-balance-a-parentheses-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


模拟栈

class Solution {
    public int minInsertions(String s) {
        int left = 0, leftNeed = 0, rightNeed = 0;
        int index = 0;
        while (index < s.length()) {
            if (s.charAt(index) == '(') {
                left++;
                index++;
            } else {
                left--;
                if (left < 0) {
                    left = 0;
                    leftNeed++;
                }
                if (index + 1 < s.length() && s.charAt(index + 1) == ')') {
                    index += 2;
                } else {
                    rightNeed++;
                    index += 1;
                }
            }
        }
        return left * 2 + leftNeed + rightNeed;
    }
}

标签:index,1541,++,括号,字符串,平衡,left
From: https://www.cnblogs.com/tianyiya/p/17238427.html

相关文章

  • 得到一个字符串的宽度
    JLabeljlabel=newJLabel(test_str);FontMetricsfm=jlabel.getFontMetrics(newjava.awt.Font("TimesNewRoman",java.awt.Font.PLAIN,12));System.out......
  • Spring容器管理的配置Bean转换对象为json字符串时StackOverflowError问题
    背景项目中某配置类XxxConfig定义了很多配置参数,通过Spring的@Value注解与配置中心的项目yml里的配置项关联。@Slf4j@Getter@Setter@RefreshScope@Configurationpub......
  • 统计一个字符串中英文字母、空格、数字和其它字符的个数
    题目:输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。程序分析:1、获取一行字符串,nextLine(),next()可以发现一下二者的区别,2、把字符串的每一个字符赋值到......
  • Oracle之instr(字符串包含函数)
    原文地址:https://www.iteye.com/blog/liuzidong-1135549参考资料1oracle函数大全-字符处理函数http://thinbug.bokele.com/?ArticleID=314532oracle的sql里面有没有测试......
  • 字符串哈希函数
    1、概念哈希之所以广泛存在,是因为它能在绝大多数情况下可以在O(1)的时间复杂度中完成元素的查找。它的核心是数组,如果输入是一个自然数,那么当然可以在常数时间内搜索到自......
  • 前端常用库—nanoid(唯一标识字符串)
    nanoid库和uuid库一样都可以生成uuid,但是nanoid相比uuid要更轻量级,​​​https://github.com/ai/nanoid​​使用nanoid的使用1.在项目目录下打开终端,下载安装nanoid库npmi......
  • Qt5.12实战之QByteArray与字符指针及字符串转换
    示例源码:#include<QCoreApplication>#include<QDebug>#include<QTextStream>staticQTextStreamcout(stdout,QIODevice::WriteOnly);#include<iostream>#include......
  • android studio里设置 大括号占一行
    看了书《构建之法》里面有说到建议编程时的那个大括号占一行的,今天学android的时候突然想试试设置 一下,上网搜索了一下,方法如下图:  这样就可以了!!!......
  • 22.括号生成
    classSolution{public:vector<string>res;voiddfs(intl,intr,intn,stringstr){if(r==n&&l==n)//如果左右括号都用完了,说明找到了一个答......
  • 【826】Latex 大括号多行公式写法
    参考:Latex大括号及多行公式方法一:\begin{equation}\begin{cases}\delta_1=sin^2{\left(\frac{\varphi_2-\varphi_1}{2}\right)},\\\delta_2=......