Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

(String permutation) Write a recursive method to print all the permutations of a

ID: 3759434 • Letter: #

Question

(String permutation) Write a recursive method to print all the permutations of a
string. For example, for the string abc, the printout is
abc
acb
bac
bca
cab
cba
(Hint: Define the following two methods. The second is a helper method.)
public static void displayPermutation(String s)
public static void displayPermutation(String s1, String s2)
The first method simply invokes displayPermutation(" ", s). The
second method uses a loop to move a character from s2 to s1 and recursively
invokes it with a new s1 and s2. The base case is that s2 is empty and prints s1
to the console.
Write a test program that prompts the user to enter a string and displays all its
permutations.

Explanation / Answer

package chegg;

public class Compress {

   public static void displayPermutation(String s) {

       displayPermutation("", s);

   }

public static void displayPermutation(String s1, String s2) {

   if (s2.length() <= 0) {

           System.out.println(s1);

           return;

       }

      

   StringBuilder str1;

   String str2;

      

   for (int i = 0; i < s2.length(); i++) {

       str1 = new StringBuilder(s1);

           str1.append(s2.charAt(i));

           str2 = s2.substring(0, i) + s2.substring(i+1, s2.length());

           displayPermutation(str1.toString(), str2);

       }

}

   public static void main(String[] args) {

       displayPermutation("abc");

   }

}