有效的括号序列
给定一个字符串所表示的括号序列,包含以下字符: ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, 判定是否是有效的括号序列。
样例
括号必须依照 “()” 顺序表示, “()[]{}” 是有效的括号,但 “([)]”则是无效的括号。
public class Solution {
/**
* @param s A string
* @return whether the string is a valid parentheses
*/
public boolean isValidParentheses(String s) {
// Write your code here
Stack<Character> stack = new Stack<Character>();
for(Character c : s.toCharArray()){
if("( { [".contains(String.valueOf(c))){
stack.push(c);//如果c中含有“( { [”则入栈;
}
else{
if(!stack.isEmpty() && is_valid(stack.peek(), c)){//栈顶元素和c比较
stack.pop(); //有效则出栈
}
else{
return false;
}
}
}
return stack.isEmpty();
}
private boolean is_valid(char c1, char c2){
return (c1 == '(' && c2 == ')' || c1 == '{' && c2 == '}' || c1 == '[' && c2 == ']');
}
}