Given a string containing just the characters '(', ')', '{', '}', '['
and ']', determine if the input string is valid.An input string is valid if:
Open brackets must be closed by the same type of brackets. Open
brackets must be closed in the correct order. Note that an empty
string is also considered valid.Example 1:
Input: "()" Output: true Example 2:
Input: "()[]{}" Output: true Example 3:
Input: "(]" Output: false Example 4:
Input: "([)]" Output: false Example 5:
Input: "{[]}" Output: true
正确的原则在于,需要关闭的时候最近的是匹配的,可以用栈来辅助实现
public boolean isValid(String s) {
char[] array=s.toCharArray();
Stack<Character> stack=new Stack();
for(char c:array){
if(c=='{' || c== '(' ||c=='[') stack.add(c);
else{
if(stack.isEmpty()) return false;
if(c=='}'){
if(stack.pop()!='{') return false;
}else if(c==']'){
if(stack.pop()!='[') return false;
}else if(c==')'){
if(stack.pop()!='(') return false;
}
}
}
return stack.isEmpty();
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。