• [leetcode-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. 

    思路:

    用一个栈即可,如果顶部和字符串中的当前字符匹配则出栈,最后栈的大小即为不匹配的个数。

    int minAddToMakeValid(string S) {
            if(S.length()<=1)return S.length();
            stack<char>st;
            for(int i = 0; i < S.length(); i++)
            {
                if(S[i] == ')' && !st.empty() && st.top() == '(')
                {
                    st.pop();
                    continue;
                }
                else
                {
                    st.push(S[i]);
                }
            }
            return st.size();
        }
  • 相关阅读:
    A
    N
    M
    L
    K
    J
    sass
    通过ps给透明通道的图片添加灰度(适用于需要兼容IE7,效果很好)
    CSS十一问——好奇心+刨根问底=CSSer
    清除浮动的7种方法
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/10070322.html
Copyright © 2020-2023  润新知