fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Main
  6. {
  7. public static void permute(String s) {
  8. StringBuilder sb = new StringBuilder();
  9. permute("", s, sb);
  10. System.out.println(sb.toString());
  11. }
  12.  
  13. public static void permute(String p, String s, StringBuilder sb) {
  14. // System.out.println("p = " + p + " s = " + s);
  15. int n = s.length();
  16. if (n == 0) {
  17. if (sb.length() > 0) sb.append(",");
  18. sb.append(p);
  19. } else {
  20. for (int i = 0; i < n; i++)
  21. permute(p + s.charAt(i), s.substring(0, i) + s.substring(i + 1), sb);
  22. }
  23. }
  24.  
  25. public static void main (String[] args) throws java.lang.Exception
  26. {
  27. Reader in;
  28.  
  29. try {
  30. if (args.length == 1) {
  31. in = new FileReader(args[0]);
  32. } else {
  33. in = new InputStreamReader(System.in);
  34. }
  35.  
  36. br = new BufferedReader(in);
  37.  
  38. String line;
  39. while ((line = br.readLine()) != null) {
  40. permute(line);
  41. }
  42.  
  43. br.close();
  44. } catch (IOException e) {
  45. e.printStackTrace();
  46. }
  47. }
  48. }
Success #stdin #stdout 0.06s 380224KB
stdin
hat
abc
Zu6
stdout
hat,hta,aht,ath,tha,tah
abc,acb,bac,bca,cab,cba
Zu6,Z6u,uZ6,u6Z,6Zu,6uZ