③ 左少右多,判断在 else if(st.isEmpty() || c != st.peek())
2- 实现
⭐20. 有效的括号——题解思路
classSolution{publicbooleanisValid(String s){int len = s.length();if(len%2!=0)returnfalse;// 压栈Stack<Character> st =newStack<>();for(int i =0; i < s.length();i++){char c = s.charAt(i);if(c =='('){
st.push(')');}elseif(c =='['){
st.push(']');}elseif(c =='{'){
st.push('}');}elseif(st.isEmpty()|| c != st.peek()){returnfalse;}else{
st.pop();}}return st.isEmpty();}}
3- ACM 实现
publicclass validK {publicstaticbooleanisValid(String str){// 遍历int len = str.length();if(len%2!=0)returnfalse;Stack<Character> st =newStack<>();for(int i =0; i < str.length(); i++){char c = str.charAt(i);if(c =='('){
st.push(')');}elseif(c =='['){
st.push(']');}elseif(c =='{'){
st.push('}');}elseif(st.isEmpty()|| c != st.peek()){returnfalse;}else{
st.pop();}}return st.isEmpty();}publicstaticvoidmain(String[] args){Scanner sc =newScanner(System.in);String input = sc.nextLine();System.out.println("结果是"+isValid(input));}}