
import java.util.Stack;public class Practice{ public static void main(String[] args) { String a = "[()]{}{[()]}"; String b = "[(])"; System.out.println(isLegal(a)); System.out.println(isLegal(b)); } public static boolean isLegal(String string) { Stack<Character> stack = new Stack<Character>(); for (int i = 0; i < string.length(); ++i) { char c = string.charAt(i); if (c == '[' || c == '(' || c == '{') { stack.push(c); } else if (c == ')') { char temp = stack.pop(); if (temp != '(') return false; } else if (c == ']') { char temp = stack.pop(); if (temp != '[') return false; } else if (c == '}') { char temp = stack.pop(); if (temp != '{') return false; } } return true; }}

import java.util.Stack;public class Practice{ public static void main(String[] args) { String s = "1 + 2 ) * 3 - 4 ) * 5 - 6 ) ) )"; Stack<String> stack = new Stack<>(); Stack<String> num = new Stack<>(); String[] strings = s.split(" "); for (int i = 0; i < strings.length; ++i) { if (strings[i].equals("+") || strings[i].equals("-") || strings[i].equals("*") || strings[i].equals("/")) { stack.push(strings[i]); } else if (strings[i].equals(")")) { String string = "("; String a = num.pop(); String b = num.pop(); string += b + stack.pop() + a + ")"; num.push(string); } else num.push(strings[i]); } System.out.println(num.pop()); }}