Skip to content

Commit 62acf53

Browse files
committed
Spring permutations
1 parent 2d403fd commit 62acf53

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.hellokoding.algorithm;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.stream.Collectors;
6+
7+
public class BackTracking_StringPermutations {
8+
List<String> result = new ArrayList<>();
9+
10+
String swap(String str, int i, int j) {
11+
char[] arr = str.toCharArray();
12+
13+
char temp = arr[i];
14+
arr[i] = arr[j];
15+
arr[j] = temp;
16+
17+
return String.valueOf(arr);
18+
}
19+
20+
void enumerate(String str, int startIndex) {
21+
if (startIndex == str.length()-1) {
22+
result.add(str);
23+
return;
24+
}
25+
26+
for(int i=startIndex; i<str.length(); i++) {
27+
str = swap(str, startIndex, i);
28+
enumerate(str, startIndex+1);
29+
str = swap(str, startIndex, i); // backtracking
30+
}
31+
}
32+
33+
public static void main(String[] args) {
34+
String str = "ABC";
35+
36+
BackTracking_StringPermutations permutations = new BackTracking_StringPermutations();
37+
permutations.enumerate(str, 0);
38+
39+
System.out.println(permutations.result.stream().collect(Collectors.joining(" ")));
40+
}
41+
}

0 commit comments

Comments
 (0)