String Question 15
Question 25. Write a Program to check valid parenthesis string.
Given a string s containing only three types of characters: '(', ')' and '*', return true if s is valid.
The following rules define a valid string:
Any left parenthesis '(' must have a corresponding right parenthesis ')'.
Any right parenthesis ')' must have a corresponding left parenthesis '('.
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 "".
Program
public boolean checkValidString(String s) { int low = 0; int high = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == '(') { low++; high++; } else if (s.charAt(i) == ')') { if (low > 0) { low--; } high--; } else { if (low > 0) { low--; } high++; } if (high < 0) { return false; } } return low == 0; } |