Java balanced expressions check {[()]}

后端 未结 30 992
傲寒
傲寒 2020-12-04 17:17

I am trying to create a program that takes a string as an argument into its constructor. I need a method that checks whether the string is a balanced parenthesized expressio

30条回答
  •  情深已故
    2020-12-04 17:51

    public static boolean isBalanced(String expression) {
      if ((expression.length() % 2) == 1) return false;
      else {
        Stack s = new Stack<>();
        for (char bracket : expression.toCharArray())
          switch (bracket) {
            case '{': s.push('}'); break;
            case '(': s.push(')'); break;
            case '[': s.push(']'); break;
            default :
              if (s.isEmpty() || bracket != s.peek()) { return false;}
              s.pop();
          }
        return s.isEmpty();
      }
    }
    
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String expression = in.nextLine();
        boolean answer = isBalanced(expression);
        if (answer) { System.out.println("YES");}
        else { System.out.println("NO");}
    
    }
    

提交回复
热议问题