1,2,3,4,5,6共六个数, 组成一个没有重复数字的六位数,4不能在第二位,2和3不能邻接,请列出所有可能的组合
1,2,3,4,5,6共6个数, 组成一个没有重复数字的六位数,4不能在第二位,2和3不能邻接,请列出所有可能的组合.
package IQ;
import java.util.Set;
import java.util.TreeSet;
public class MyTest {
public static void main(String args[]) {
char[] number = new char[] { '1', '2', '2', '3', '4', '5' };
perm(number, 0, number.length - 1);
System.out.println(set.size());
int cols = 10;
for (String s : set) {
System.out.print(s + " ");
if (cols-- == 1) {
System.out.println();
cols = 10;
}
}
}
public static void addNumber(String str) {
set.add(str);
}
public static Set<String> set = new TreeSet<String>();
public static void perm(char[] n, int beg, int end) {
if (beg == end) {
String result = String.valueOf(n);
if (n[2] == '4')
return;
if (result.contains("35") || result.contains("53"))
return;
addNumber(String.valueOf(n));
return;
}
for (int i = beg; i <= end; ++i) {
swap(n, beg, i);
perm(n, beg + 1, end);
swap(n, beg, i);
}
}
public static int number = 0;
public static void swap(char[] n, int a, int b) {
char temp = n[a];
n[a] = n[b];
n[b] = temp;
}
}
package IQ;
import java.util.Set;
import java.util.TreeSet;
public class MyTest {
public static void main(String args[]) {
char[] number = new char[] { '1', '2', '2', '3', '4', '5' };
perm(number, 0, number.length - 1);
System.out.println(set.size());
int cols = 10;
for (String s : set) {
System.out.print(s + " ");
if (cols-- == 1) {
System.out.println();
cols = 10;
}
}
}
public static void addNumber(String str) {
set.add(str);
}
public static Set<String> set = new TreeSet<String>();
public static void perm(char[] n, int beg, int end) {
if (beg == end) {
String result = String.valueOf(n);
if (n[2] == '4')
return;
if (result.contains("35") || result.contains("53"))
return;
addNumber(String.valueOf(n));
return;
}
for (int i = beg; i <= end; ++i) {
swap(n, beg, i);
perm(n, beg + 1, end);
swap(n, beg, i);
}
}
public static int number = 0;
public static void swap(char[] n, int a, int b) {
char temp = n[a];
n[a] = n[b];
n[b] = temp;
}
}