A Way For Learning

Permutations-Program

No comments
import java.util.*;
class perm2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int num[] = new int[str.length()];
int i = 0;
while(i < str.length()) {
//System.out.println(str.charAt(i));
num[i] = Integer.parseInt(str.charAt(i)+"");
i++;
}
// int num[] = new int[3];
// num[0] = 1;
// num[1] = 2;
// num[2] = 3;
//System.out.println(num);
hello obj = new hello();
ArrayList<ArrayList<Integer>> list = obj.permute(num);
i = 0;
while(i < list.size()) {
ArrayList<Integer> temp = list.get(i);
String res = "";
int j = 0;
while(j < temp.size()) {
res = res+temp.get(j);
j++;
}
System.out.println(res);
i++;
}


//System.out.println(obj.permute(num)+"jj");
//obj.permute(num);

}

}
class hello {
public ArrayList<ArrayList<Integer>> permute(int[] num) {
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
permute(num, 0, result);
return result;
}

void permute(int[] num, int start, ArrayList<ArrayList<Integer>> result) {

if (start >= num.length) {
ArrayList<Integer> item = convertArrayToList(num);
result.add(item);
}

for (int j = start; j <= num.length - 1; j++) {
swap(num, start, j);
permute(num, start + 1, result);
swap(num, start, j);
}
}

private ArrayList<Integer> convertArrayToList(int[] num) {
ArrayList<Integer> item = new ArrayList<Integer>();
for (int h = 0; h < num.length; h++) {
item.add(num[h]);
}
return item;
}

private void swap(int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}

}

No comments :

Post a Comment