import java.util.*; public class Main { static class Node { String val; Node left, right; Node(String v) { val = v; } } static Node parseNode(String s, int[] idx) { if (idx[0] >= s.length() || s.charAt(idx[0]) != '(') return null; idx[0]++; // '(' Node node = new Node(null); // left subtree if (idx[0] < s.length() && s.charAt(idx[0]) == '(') { node.left = parseNode(s, idx); } if (idx[0] < s.length() && s.charAt(idx[0]) == ')') idx[0]++; // ')' // value int start = idx[0]; while (idx[0] < s.length() && s.charAt(idx[0]) != '(' && s.charAt(idx[0]) != ')') idx[0]++; node.val = s.substring(start, idx[0]); // right subtree if (idx[0] < s.length() && s.charAt(idx[0]) == '(') { node.right = parseNode(s, idx); } if (idx[0] < s.length() && s.charAt(idx[0]) == ')') idx[0]++; // ')' return node; } static void preorder(Node node, StringBuilder sb) { if (node == null) return; sb.append(node.val); preorder(node.left, sb); preorder(node.right, sb); } public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); String s = sc.nextLine().trim(); String answer = sc.nextLine().trim(); int[] idx = {0}; Node root = parseNode(s, idx); StringBuilder sb = new StringBuilder(); preorder(root, sb); String preorderStr = sb.toString(); System.out.println(preorderStr.equals(answer) ? "1" : "0"); } }
← PREV NEXT → 652/768
HOME GALLERY