(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");
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.