zoukankan      html  css  js  c++  java
  • 921.使括号有效的最少添加

    给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。

    从形式上讲,只有满足下面几点之一,括号字符串才是有效的:

    它是一个空字符串,或者
    它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者
    它可以被写作 (A),其中 A 是有效字符串。
    给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。

    示例 1:

    输入:"())"
    输出:1
    示例 2:

    输入:"((("
    输出:3
    示例 3:

    输入:"()"
    输出:0
    示例 4:

    输入:"()))(("
    输出:4

    提示:

    S.length <= 1000
    S 只包含 '(' 和 ')' 字符。

    用left来记录不能匹配的左括号,right记录不能匹配的右括号。

    如果先出现左括号,left+1。

    出现右括号的话,有两种情况,存在没有匹配的左括号,那么left-1,right不变。如果左括号全都匹配或者没有出现,right+1。

    返回值是left+right。

    class Solution {
        public int minAddToMakeValid(String S) {
            int left = 0;
            int right = 0;
            for(int i = 0; i < S.length(); i++) {
                if(S.charAt(i) == '(') {
                    left++;
                }else {
                    if(left != 0) {
                        left--;
                    }else {
                        right++;
                    }
                }
            }
            System.out.print(left + right);
            return left + right;
        }
    }
    
  • 相关阅读:
    关于第三方库
    一些css属性,抄自某个大神忘记谁了,不好意思
    10.使用express模拟数据服务器
    9.text-shadow
    8.css背景图案
    7.一个抄来圆形菜单
    6.文字闪烁效果
    5.偶然看到的一个css加载动画
    4.怎样使用css实现一个切角效果
    3.写一个简单的弹出菜单
  • 原文地址:https://www.cnblogs.com/Jiewl/p/12584710.html
Copyright © 2011-2022 走看看