题目描述
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.
结题:利用栈,直接看代码,很简单。
import java.util.*;
public class Solution {
public boolean isValid(String s) {
if(s == null||s.length() == 0||s.length()%2 == 1)
return false;
char[] ch=s.toCharArray();
Stack<Character> stack=new Stack();
for(int i=0;i<ch.length;i++)
{
if(ch[i] == '('||ch[i] == '{'||ch[i] == '[')
{
stack.push(ch[i]);
}
else if(ch[i] == ')')
{
if(!stack.empty()&&stack.peek() == '(')
{
stack.pop();
}
else
return false;
}
else if(ch[i] == '}')
{
if(!stack.empty()&&stack.peek() == '{')
{
stack.pop();
}
else
return false;
}
else if(ch[i] == ']')
{
if(!stack.empty()&&stack.peek() == '[')
{
stack.pop();
}
else
return false;
}
else
return false;
}
if(stack.empty())
return true;
else
return false;
}
}