zoukankan      html  css  js  c++  java
  • 30-Day Leetcoding Challenge Day16

    解法一:正反各遍历一次。正向遍历只要保证( 加 *的数量大于)。反向遍历保证* 加 )的数量大于(。

    JAVA

    class Solution {
        public boolean checkValidString(String s) {
            int left = 0;
            int right = 0;
            for(int i = 0; i < s.length(); i++){
                if(s.charAt(i) == ')'){
                    left--;
                }
                else{
                    left++;
                }
                if(left < 0)return false;
            }
            for(int i = s.length()-1; i >= 0; i--){
                if(s.charAt(i) == '('){
                    right--;
                }
                else{
                    right++;
                }
                if(right < 0)return false;
            }
            return true;
        }
    }

    Python3

    class Solution:
        def checkValidString(self, s: str) -> bool:
            left = 0
            right = 0
            for i in range(len(s)):
                if s[i] == ')':
                    left -= 1
                else:
                    left += 1
                if left < 0:
                    return False
            if left == 0 :
                return True #bug 应对这种输入'('
            for j in range(len(s)-1,-1,-1):
                if s[j] == '(':
                    right -= 1
                else:
                    right += 1
                if right < 0:
                    return False
            return True
  • 相关阅读:
    音乐小转盘 css3 动画
    1.41
    1.4
    1.1
    课程设计——输出到TXT
    课程设计——c++中读取txt文件
    大二第一学期期末课程设计 2015.12.28
    无向图的广度优先遍历
    JS基本概念
    继承
  • 原文地址:https://www.cnblogs.com/yawenw/p/12741368.html
Copyright © 2011-2022 走看看