import java.util.*; public class Solution { public boolean isValid (String s) { // write code here if(s.length()<2){ return false; } //遍历字符串遇到左括号等等将它对应的右括号加入栈,遇到右括号 // 判断是否是一致是的话出栈 Stack<Character> stack1 = new Stack(); for(int i=0;i<s.length();i++){ if(s.charAt(i)=='('){ stack1.add(')'); }else if(s.charAt(i)=='{') { stack1.add('}'); }else if(s.charAt(i)=='['){ stack1.add(']'); }else if(!stack1.empty()&&s.charAt(i)==stack1.peek()){ //当不为空并且遇到右括号时判断栈顶元素是否相同 // 相同弹出即可 stack1.pop(); }else if(stack1.empty()){ //如果此时栈为空且没有遇到左边的说明不符和 return false; } } // 最后判断栈是否为空 if(stack1.empty()){ return true; }else{ return false; } } }