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.
    class Solution:
        def minAddToMakeValid(self, S):
            """
            :type S: str
            :rtype: int
            """
            res = 0
            count = 0
            for i in S:
                if i=='(':
                    count += 1
                else:
                    if count:
                        count -= 1
                    else:
                        res += 1
            return res+count
    

    一开始看到括号匹配下意识地用了栈,但仔细一想好像没必要用栈。顺便吐槽这其实应该是一道easy的题目。

  • 相关阅读:
    HDFS工作流程
    HADOOP 安全模式
    Hadoop环境的搭建
    面向对象-绑定与非绑定方法
    面向对象-封装
    面向对象-继承与派生
    面向对象-多态与多态性
    面向对象-绑定方法
    LOL游戏基本代码
    1 面向对象的程序设计
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9797150.html
Copyright © 2011-2022 走看看