class Solution {
public boolean isValid(String s) {
int n = s.length();
if( n%2 ==1 ){
return false;
}
Stack stack = new Stack<>() ;
for(int i =0 ;i
上面的代码是可行的
一边学习一边写
最开始不知道怎么用堆,首先建堆时我选用了字符堆,所以是Stack,然后java在建堆时必须要new,我也试了不new不行呀。然后在两处if判断时不能用stack.pop()==null,有时stack可能会报空指针。所以调用stack.empty()验空就可以了。思路是将s遍历赋给c当是(,{,[中的一个时压栈,当遇到),},]时要比对前一个与之对应的括号然后出栈。最后如果没有出栈完毕证明不是有效括号,出栈完毕则是有效括号。



