zoukankan      html  css  js  c++  java
  • 921. Minimum Add to Make Parentheses Valid

    给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。

    从形式上讲,只有满足下面几点之一,括号字符串才是有效的:

    • 它是一个空字符串,或者
    • 它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者
    • 它可以被写作 (A),其中 A 是有效字符串。

    给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。

    # left表示需要的左括号数,right表示需要的右括号数。
    # 遍历字符串s,
    # 如果遇到左括号,说明此时需要再加右括号,right+1
    # 如果遇到右括号,且right大于0,说明当前右括号可以匹配之前的左括号,不需要再加右括号,若此时right等于0,那么说明需要一个左括号

     1 class Solution(object):
     2     def minAddToMakeValid(self, S):
     3         """
     4         :type S: str
     5         :rtype: int
     6         """
     7 
     8         left,right=0,0
     9         for ch in S:
    10             if(ch=='('):
    11                 right+=1
    12             elif(ch==')'):
    13                 if(right>0):
    14                     continue
    15                 else:
    16                     left+=1
    17         
    18         return left+right
  • 相关阅读:
    前端启动摄像头的API
    落谷训练---
    树的遍历 (和) 玩转二叉树 的总结博客
    L2-010 排座位 (并查集)
    最长回文(manacher模板)
    L2-006 树的遍历
    面试题5:从尾到头打印链表
    面试题4:替换空格
    面试题3:二维数组中的查找
    poj 1511(spfa)
  • 原文地址:https://www.cnblogs.com/zijidan/p/12535739.html
Copyright © 2011-2022 走看看