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
    
    }
  • 相关阅读:
    Boost.Bind的基础使用
    boost::bind
    winform多线程方式登录代码整理
    shared_from_this 几个值得注意的地方
    [转]gtest使用
    以boost::function和boost:bind取代虚函数
    asio学习2: TCP服务器端:对准时间 解析
    boost asio study
    Asio学习1: TCP客户端:对准时间 解析
    Shawn,别让我们失望
  • 原文地址:https://www.cnblogs.com/learning-c/p/9846786.html
Copyright © 2011-2022 走看看