• 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
    
    }
  • 相关阅读:
    奶牛跑步2
    数据结构练习
    HighChats报表使用C#mvc导出本地图片
    选择论
    投票选举
    价值
    工作5年后总结的工作经验
    formValidator 不支持jquery1.9以上的解决办法
    随想29:没有最完美的制度,只有最适合的制度
    随想28:愿我成为一个高级黑
  • 原文地址:https://www.cnblogs.com/learning-c/p/9846786.html
Copyright © 2020-2023  润新知