Exemplo n.º 1
0
 public static void print(String str) {
   if (str == null || str.length() == 0) {
     return;
   }
   StringBuilder sb = new StringBuilder();
   boolean[] added = new boolean[str.length()];
   print(str, 0, sb, added);
 }
Exemplo n.º 2
0
 private static void print(String str, int firstNotAdded, StringBuilder sb, boolean[] added) {
   if (sb.length() == str.length()) {
     System.out.println(sb.toString());
     return;
   }
   for (int j = firstNotAdded; j < str.length(); ++j) {
     if (!added[j]) {
       sb.append(str.charAt(j));
       added[j] = true;
       print(str, (j == firstNotAdded ? j + 1 : firstNotAdded), sb, added);
       sb.setLength(sb.length() - 1);
       added[j] = false;
     }
   }
 }