括号匹配

    xiaoxiao2025-03-02  26

    class Solution { public boolean isBracket(char ch) { if('(' == ch || ')' == ch || '{' == ch || '}' == ch || '[' == ch || ']' == ch) { return true; } return false; } public boolean isValid(String str) { char[] stack = new char[str.length()]; int top = 0; //开始遍历字符串str for (int i = 0;i < str.length();i++) { if(!isBracket(str.charAt(i))) { continue; }else{ if(str.charAt(i)=='(' || str.charAt(i)=='{' || str.charAt(i)=='[') { stack[top++] = str.charAt(i); }else{//可能是右括号 if(top == 0) {//右括号多 System.out.println("右括号多"); return false; } char c = stack[top-1]; if ('(' == c && ')' == str.charAt(i) || '{' == c && '}' == str.charAt(i) || '[' == c && ']' == str.charAt(i)) { //匹配了一对出栈 --top; }else{ System.out.println("右括号次序匹配出错"); return false; } } } } if(top > 0) { System.out.println("左括号比右括号多"); return false; } System.out.println("左括号===右括号"); return true; } }

     

    最新回复(0)