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 B are 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.

    Approach #1: C++.[stack]

    class Solution {
    public:
        int minAddToMakeValid(string S) {
            int len = S.length();
            if (len == 0) return 0;
            stack<char> myStack;
            myStack.push(S[0]);
            
            for (int i = 1; i < len; ++i) {
                if (myStack.empty()) myStack.push(S[i]);
                else if (myStack.top() == '(' && S[i] == ')') myStack.pop();
                else myStack.push(S[i]);
            }
            
            return myStack.size();
        }
    };
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    my eye
    html与HTML5的区别
    h5css样式
    h5css3弹性盒子
    简单js的介绍
    2020.8.16(周报6)
    2020.8.18
    2020.8.20
    2020.8.17
    2020.8.15
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10324945.html
Copyright © 2011-2022 走看看