Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.93 KB | None | 0 0
  1. class GfG
  2. {
  3.     static final char MARKER = '$';
  4.     static Set<String> subtrees = new HashSet<String>();
  5.     public static boolean dupSub(Node root)
  6.     {
  7.         subtrees.clear();
  8.        
  9.         String res = dupSubUtil(root);
  10.         if(res.compareTo("") == 0)
  11.         return true;
  12.         else
  13.         return false;
  14.     }
  15.    
  16.     public static String dupSubUtil(Node root)
  17.     {
  18.         String s = "";
  19.        
  20.         if(root == null)
  21.          return s + MARKER;
  22.          
  23.         String lStr = dupSubUtil(root.left);
  24.         if (lStr.compareTo(s) == 0)
  25.             return s;
  26.            
  27.         String rStr = dupSubUtil(root.right);
  28.         if (rStr.compareTo(s) == 0)
  29.            return s;
  30.            
  31.         s = s + root.data + lStr + rStr;
  32.        
  33.          if (s.length() > 3 && subtrees.contains(s) == true)
  34.                 return "";
  35.                
  36.         subtrees.add(s);
  37.  
  38.         return s;
  39.     }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement