-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patha46backTracking.java
More file actions
63 lines (60 loc) · 1.75 KB
/
a46backTracking.java
File metadata and controls
63 lines (60 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
public class a46backTracking {
// print array
static void printArr(int arr[]){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
// print 1to5 and decrease by -2 at the time of backTracking
static void changeArr(int arr[], int i, int val){
// base case
if (i == arr.length) {
printArr(arr);
return;
}
// kaam
arr[i] = val;
changeArr(arr, i+1, val+1);
// arr[i] = val-2;
arr[i] = arr[i]-2;
}
//find subsets
static void findSubSets(String str, int i, String ans){
//base case
if (i==str.length()) {
if (ans.length()==0) {
System.out.println("null");
}else{
System.out.println(ans);
}
return;
}
// Work
// for yes choice
findSubSets(str, i+1, ans+str.charAt(i));
// for no choice
findSubSets(str, i+1, ans);
}
// find permutations
static void findPermutation(String str,String ans){
// base case
if (str.length()==0) {
System.out.println(ans);
return;
}
// work
for (int i = 0; i < str.length(); i++) {
char curr = str.charAt(i);
String newStr = str.substring(0, i) + str.substring(i+1);
findPermutation(newStr, ans+curr);
}
}
public static void main(String[] args) {
int arr[] = new int[5];
// changeArr(arr, 0, 1);
// printArr(arr);
// findSubSets("abc", 0, "");
findPermutation("abc", "");
}
}