Guest User

Letter Tile Possibilities

a guest
Jun 9th, 2019
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.07 KB | None | 0 0
  1. import java.util.HashSet;
  2. import java.util.Set;
  3.  
  4. /**
  5.  * Created by bugkiller on 09/06/19.
  6.  */
  7. class LetterTilePossibilities {
  8.    
  9.     public static void main(String[] args) {
  10.         LetterTilePossibilities obj = new LetterTilePossibilities();
  11.         System.out.println(obj.numTilePossibilities("ABCDEF"));
  12.     }
  13.  
  14.     public int numTilePossibilities(String tiles) {
  15.         Set<String> result = new HashSet<>();
  16.         possibilities(tiles, "", result);
  17.         return result.size();
  18.     }
  19.  
  20.     private void possibilities(String rem, String pre, Set<String> result) {
  21.         if (rem.length() == 0) {
  22.             if (pre.length() != 0) {
  23.                 result.add(pre);
  24.             }
  25.             return;
  26.         }
  27.         for (int i = 0; i < rem.length(); i++) {
  28.             char c = rem.charAt(i);
  29.             String before = rem.substring(0, i);
  30.             String after = rem.substring(i + 1);
  31.             String newRem = before + after;
  32.             possibilities(newRem, pre, result);
  33.             possibilities(newRem, pre + c, result);
  34.         }
  35.     }
  36. }
Add Comment
Please, Sign In to add comment