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
    
    }
  • 相关阅读:
    移除TDE
    SQL Server 聚集索引和非聚集索引的区别
    Serivce Broker 简单实用
    SQL Server 2012 ColumnStore索引测试
    UISegmentedControl的所有操作总结
    iPhone开发之深入浅出 — ARC之前世今生(三)
    什么是 ARC?ios5,xcode 4.2
    Present ViewController详解
    UITextField的总结
    iPhone开发资料之内存管理 ,循环引用导致的内存问题
  • 原文地址:https://www.cnblogs.com/learning-c/p/9846786.html
Copyright © 2011-2022 走看看