有效的括号

    科技2022-07-10  138

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足:     1、左括号必须用相同类型的右括号闭合。     2、左括号必须以正确的顺序闭合。

    注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true

    示例 2: 输入: "()[]{}" 输出: true

    示例 3: 输入: "(]" 输出: false

    示例 4: 输入: "([)]" 输出: false

    示例 5: 输入: "{[]}" 输出: true

    package com.loo;

    import java.util.Stack;

    public class BracketPair {     public static void main(String[] args) {         System.out.println(bracketString("{3x{}[lljj]()p(){{{{{[{}]}}}}0}}"));     }

        public static boolean bracketString(String pairString) {         if (pairString == null || "".equals(pairString)) {

                // 注意空字符串可被认为是有效字符串             return true;         }         Stack stack = new Stack();         for (int i=0;i<pairString.length();i++) {             char c = pairString.charAt(i);             if (c == '(') {                 stack.push(c);             } else if (c == '[') {                 stack.push(c);             } else if (c == '{') {                 stack.push(c);             } else if (c == ')') {                 if (stack.isEmpty()) {                     return false;                 }                 char s = (char)stack.peek();                 if (s != '(') {                     return false;                 } else {                     stack.pop();                 }             } else if (c == ']') {                 if (stack.isEmpty()) {                     return false;                 }                 char s = (char)stack.peek();                 if (s != '[') {                     return false;                 } else {                     stack.pop();                 }             } else if (c == '}') {                 if (stack.isEmpty()) {                     return false;                 }                 char s = (char)stack.peek();                 if (s != '{') {                     return false;                 } else {                     stack.pop();                 }             }         }         return stack.isEmpty();     } }

     

    Processed: 0.023, SQL: 8