- 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
栈,
首字符串个数为奇数,则false
字符串个数为偶数,把它转换成字符数组,然后一个个遍历,遇到左符号,就压入栈,否则看看栈是否为空,因为接下来,要弹出栈
如果遇到右符号,则把它和左符号进行并比较处理,满足条件就弹出栈,否则返回fasle,最后看栈中是否含有元素,没有就返回true
class Solution {
public boolean isValid(String s) {
if(s.length()%2!=0){
return false;
}
Stack<Character> stack=new Stack<>();
char[] chararr=s.toCharArray();
for(int i=0;i<chararr.length;i++){
char c=chararr[i];
if(c=='('){
stack.push(c);
}else if(c=='['){
stack.push(c);
}else if(c=='{'){
stack.push(c);
}else{
if(stack.isEmpty()){
return false;
}
char top=stack.peek();
if(top=='('&&c==')'||top=='{'&&c=='}'||top=='['&&c==']'){
stack.pop();
}else{
return false;
}
}
}
return stack.isEmpty();
}
}