题解 | #有效括号序列#
有效括号序列
http://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2
Java代码实现:
该算法在平时的面试环节当中被问到的概率比较高,其实最简易的方法就是使用“栈”这种数据结构
合法的有 [ ] ( ) [()]. 不合法的有[)}(]
合法的特点:对称,其实就可以巧妙利用stack出栈,入栈的操作
public boolean isValid (String s) {
Stack<Character> stack=new Stack(); //首先定义一个空栈
for(char c:s.toCharArray()){ //将字符串转换为数组形式然后进行遍历
if(c=='('){
stack.push(')');
}else if(c=='['){
stack.push(']');
}else if(c=='{'){
stack.push('}');
}else if(stack.isEmpty()||stack.pop()!=c){
return false;
}
}
return stack.isEmpty();
}
Stack<Character> stack=new Stack(); //首先定义一个空栈
for(char c:s.toCharArray()){ //将字符串转换为数组形式然后进行遍历
if(c=='('){
stack.push(')');
}else if(c=='['){
stack.push(']');
}else if(c=='{'){
stack.push('}');
}else if(stack.isEmpty()||stack.pop()!=c){
return false;
}
}
return stack.isEmpty();
}