Total Accepted: 10415 Total Submissions: 37624
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
public class Solution {
public boolean isValid(String s) {
char[] stack = new char[s.length()];
int cnt = 0;
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch == '(' || ch == '{' || ch == '[') stack[cnt++] = ch;
else if (ch == ')') {
if (cnt > 0 && stack[cnt - 1] == '(') cnt--;
else break;
}
else if (ch == '}') {
if (cnt > 0 && stack[cnt - 1] == '{') cnt--;
else break;
}
else if (ch == ']') {
if (cnt > 0 && stack[cnt - 1] == '[') cnt--;
else break;
}
if (i == s.length() - 1 && cnt == 0)
return true;
}
return false;
}
}