zoukankan      html  css  js  c++  java
  • LeetCode 921. 使括号有效的最少添加(Minimum Add to Make Parentheses Valid) 48

    921. 使括号有效的最少添加
    921. Minimum Add to Make Parentheses Valid

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

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

    • 它是一个空字符串,或者
    • 它可以被写成 AB (A 与 B 连接),其中 A 和 B 都是有效字符串,或者
    • 它可以被写作 (A),其中 A 是有效字符串。

    给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。

    每日一算法2019/6/20Day 48LeetCode921. Minimum Add to Make Parentheses Valid

    示例 1:

    输入:"())" 输出:1

    示例 2:

    输入:"(((" 输出:3

    示例 3:

    输入:"()" 输出:0

    示例 4:

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

    提示:

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

    Java 实现

    import java.util.ArrayDeque;
    import java.util.Deque;
    
    class Solution {
        public int minAddToMakeValid(String S) {
            Deque<Character> deque = new ArrayDeque<>();
            int count = 0;
            for (char c : S.toCharArray()) {
                if (c == '(') {
                    deque.push(c);
                } else if (deque.isEmpty()) {
                    count++;
                } else {
                    deque.pop();
                }
            }
            return deque.size() + count;
        }
    }
    

    参考资料

  • 相关阅读:
    json
    封装PDO
    PDO
    jquery练习
    jquery包
    jquery
    租房子 多条件查询
    查询
    新闻修改处理页面
    新闻添加数据
  • 原文地址:https://www.cnblogs.com/hgnulb/p/11061378.html
Copyright © 2011-2022 走看看