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)
  • 相关阅读:
    磁盘映射命令
    CentOS 配置XWIN/VNC
    生成一个随机数,让用户输入猜这个数字,有三次机会
    自己练习读取写入txt
    python学习笔记:文件操作和集合(转)
    接口测试基础
    nginx_tomcat负载均衡环境
    mysql索引
    shell脚本
    linux基础知识(四)
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10324945.html
Copyright © 2011-2022 走看看