Objective: Given a String, print all the permutations of it.
Input: A String
Output: Print all the permutations of a string
Example:
Input : abc Output: abc acb bac bca cba cab Approach:
- Take one character at a time and fix it at the first position. (use swap to put every character at the first position)
- make recursive call to rest of the characters.
- use swap to revert the string back to its original form fo next iteration.
Complete Code:
https://gist.github.com/thmain/4d363ee4d1dacbfe6056
Output :
abc acb bac bca cba cab
use simple string based program as below
public class StringPermutations {
public static void main(String[] args) {
String s = “abcd”;
StringPermutations i = new StringPermutations();
i.permute(“”, s);
}
private void permute(String newString, String oriString) {
if (oriString == null || oriString.isEmpty()) {
System.out.println( newString);
}
for (int i = 0; i < oriString.length(); i++) {
permute(newString.concat(oriString.substring(i, i + 1)), oriString
.substring(0, i).concat(oriString.substring(i + 1)));
}
}
}
nice post .visit string top program collection
Hello Team,
It is a nice work.
One suggestion to this post: We do not need second swap and when left and size are equal then just print the string. we do need to iterate with for loop