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.
题目不讲了。。。就是配对,不对就false,都对就true……
我马上就想妥妥的stack来做啊。。尼玛自己在eclipse上跑的好好的,回leetcode上run就出现了
Java compile error: “reached end of file while parsing ”
我说这是啥问题啊。。。debug了20分钟,发现最后一行少了一个“{”………………
import java.util.Stack;
public class ValidParentheses {
public static void main(String args[]){
ValidParentheses vp =new ValidParentheses();
System.out.println(vp.isValid("()"));
}
public boolean isValid(String s) {
Stack<Character> stack = new Stack<Character>();
if(s==null||s.length()==0) return false;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='{'||s.charAt(i)=='('||s.charAt(i)=='[') stack.push(s.charAt(i));
else{
if(stack.size()==0)
return false;
char top = stack.pop();
if(s.charAt(i)==')')
if(top!='(')
return false;
else if(s.charAt(i)=='}')
if(top!='{')
return false;
else if(s.charAt(i)==']')
if(top!='[')
return false;
}
//System.out.println(stack);
}
return stack.size()==0;
}
}