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[] array=s.toCharArray();
Stack<Character> stack=new Stack<Character>();
for(int i=0;i<array.length;i++)
{
char ch=array[i];
if(ch=='{'||ch=='['||ch=='(')
{
stack.push(ch);
}
else
{
if(ch==')')
{
if(stack.empty())
{
return false;
}
if(stack.peek()=='(')
{
stack.pop();
}
else
{
return false;
}
}
else if(ch==']')
{
if(stack.empty())
{
return false;
}
if(stack.peek()=='[')
{
stack.pop();
}
else
{
return false;
}
}
else if(ch=='}')
{
if(stack.empty())
{
return false;
}
if(stack.peek()=='{')
{
stack.pop();
}
else
{
return false;
}
}
}
}
if(!stack.empty())
{
return false;
}
return true;
}
}