zoukankan      html  css  js  c++  java
  • 921.Minimum Add to Make Parentheses Valid.

    Given a string S of '(' and ')' parentheses, we add the minimum number of parentheses ( '(' or ')', and in any positions ) so that the resulting parentheses string is valid.

    Formally, a parentheses string is valid if and only if:

    • It is the empty string, or
    • It can be written as AB (A concatenated with B), where A and Bare valid strings, or
    • It can be written as (A), where A is a valid string.

    Given a parentheses string, return the minimum number of parentheses we must add to make the resulting string valid.

    Example 1:

    Input: "())"
    Output: 1
    

    Example 2:

    Input: "((("
    Output: 3
    

    Example 3:

    Input: "()"
    Output: 0
    

    Example 4:

    Input: "()))(("
    Output: 4

    Note:

    1. S.length <= 1000
    2. S only consists of '(' and ')' characters.

    使用栈。

    Runtime: 0 ms, faster than 100.00% of C++ online submissions forMinimum Add to Make Parentheses Valid.

    #include<string>
    #include<iostream>
    #include <stack>
    
    using namespace std;
    
    class Solution {
    public:
        int minAddToMakeValid(string S) {
            stack<int> st;
            for(auto a: S){
                if('('==a)
                    st.push(a);
                else if(!st.empty()&&st.top()=='('){
                    st.pop();
                }else{
                    st.push(a);
                }
            }
            return st.size();
        }
    };
    
    int main(){
        Solution solution=Solution();
        cout<<solution.minAddToMakeValid("())")<<endl; //1
        cout<<solution.minAddToMakeValid("(((")<<endl; //3
        cout<<solution.minAddToMakeValid("()")<<endl;  //0
        cout<<solution.minAddToMakeValid("()))((")<<endl; //4
        cout<<solution.minAddToMakeValid("(()())((")<<endl;//2
    
    }
  • 相关阅读:
    PHP 去除HTML标签 HTML实体转字符 br转
    PHP while使用
    js滚动条滚动到某个元素位置
    js按键监听
    用onerror处理图片获取失败问题
    windows 查看端口占用以及关闭该进程
    js获取当前时间戳 不需毫秒数
    escape,encodeURI,encodeURIComponent的区别
    php 获取中文长度 截取中文字符串
    将时间转换为xxx天前 xxx..前
  • 原文地址:https://www.cnblogs.com/learning-c/p/9846786.html
Copyright © 2011-2022 走看看