Given a string containing only three types of characters: '(', ')' and '*', write a function to check whether this string is valid. We define the validity of a string by these rules:this
'('
must have a corresponding right parenthesis ')'
.')'
must have a corresponding left parenthesis '('
.'('
must go before the corresponding right parenthesis ')'
.'*'
could be treated as a single right parenthesis ')'
or a single left parenthesis '('
or an empty string.Example 1:spa
Input: "()" Output: True
Example 2:code
Input: "(*)" Output: True
Example 3:blog
Input: "(*))" Output: True
Note:three
public boolean checkValidString(String s) { int l =0; for(int i=0;i<s.length();i++){ if(s.charAt(i)=='('||s.charAt(i)=='*'){ l++; } else{ l--; } if(l<0){ return false; } } if(l==0){ return true; } int r =0; for(int i=s.length()-1;i>=0;i--){ if(s.charAt(i)==')'||s.charAt(i)=='*'){ r++; } else{ r--; } if(r<0){ return false; } } return true; }