(原创)java 输出排列组合,’4‘ 不能在第三位,‘3’,‘5’不能相连。
2011-11-03 23:07
513 查看
1 package karl.test;
2
3 import java.util.Iterator;
4 import java.util.Set;
5 import java.util.TreeSet;
6
7 public class Test {
8 private static Set<String> set = new TreeSet<String>();
9
public static String sort(String prex, String str) {
boolean flag = true;
int len = str.length();
if (str.length() == 1) {
set.add(prex + str);
flag = false;
return prex + str;
}
for (int i = 0; i < len; i++) {
String reststr = str.substring(0, i) + str.substring(i + 1, len);
prex += str.charAt(i);
sort(prex, reststr);
if (flag) {
prex = prex.substring(0, prex.length() - 1);
flag = true;
}
}
return null;
}
public static void main(String[] args) {
String str = "122345";
sort("", str);
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String next = it.next();
if (next.contains("35") || next.contains("53")
|| (next.charAt(3) == '4')) {
} else {
System.out.println(next);
}
}
}
}
2
3 import java.util.Iterator;
4 import java.util.Set;
5 import java.util.TreeSet;
6
7 public class Test {
8 private static Set<String> set = new TreeSet<String>();
9
public static String sort(String prex, String str) {
boolean flag = true;
int len = str.length();
if (str.length() == 1) {
set.add(prex + str);
flag = false;
return prex + str;
}
for (int i = 0; i < len; i++) {
String reststr = str.substring(0, i) + str.substring(i + 1, len);
prex += str.charAt(i);
sort(prex, reststr);
if (flag) {
prex = prex.substring(0, prex.length() - 1);
flag = true;
}
}
return null;
}
public static void main(String[] args) {
String str = "122345";
sort("", str);
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String next = it.next();
if (next.contains("35") || next.contains("53")
|| (next.charAt(3) == '4')) {
} else {
System.out.println(next);
}
}
}
}
相关文章推荐
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 输出{1,2,2,3,4,5}排列组合,4不能在第三位,3和5不能相邻
- Java经典算法集——如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
- 输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
- 面试题:输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
- 输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
- 输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
- 用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。用1、2、2、3、4、5这六
- 1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"与"5"不能相连.
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
- // 40、用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列, // 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
- 有1,2,2,3,4,5六个数,要求输出他们组合的全排列,4不能在第三位,5和3不能相邻
- 140 打印出所有不同的排列 4不能在第三位,3与5不能相连