条件排列
来源:互联网 发布:数据库连不上的原因 编辑:程序博客网 时间:2024/05/08 21:40
原题如下:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
全排列
public static void Permutation(char[] chs,int i){
if(chs == null || chs.length <=0){
System.out.println("输入有误");
}
if(i == chs.length){
System.out.println(chs);
}else{
char temp;
for(int j=i; j< chs.length; j++){
if(i != j && chs[i] == chs[j]) continue; // 不同位置的相同字符不作交换
temp = chs[i];
chs[i] = chs[j];
chs[j] = temp;
Permutation(chs,i+1);
temp = chs[i];
chs[i] = chs[j];
chs[j] = temp;
}
}
}
public static void Permutation(char[] chs,int i){
if(chs == null || chs.length <=0){
System.out.println("输入有误");
}
if(i == chs.length){
if(isCondition(String.valueOf(chs))){
System.out.println(chs);
}
}else{
char temp;
for(int j=i; j< chs.length; j++){
if(i != j && chs[i] == chs[j]) continue; // 不同位置的相同字符不作交换
temp = chs[i];
chs[i] = chs[j];
chs[j] = temp;
Permutation(chs,i+1);
temp = chs[i];
chs[i] = chs[j];
chs[j] = temp;
}
}
}
private static boolean isCondition(String data){ // 判断是否符合条件
if(data.contains("35") ||data.contains("53")){
return false;
}
if(data.charAt(2)== '4'){
return false;
}
return true;
}
- 条件排列
- 带有限制条件的数字排列
- Exercise(18):排列(有限制条件)
- [算法] 带有条件的全排列 [dfs + set]
- 面试题:有限制条件的全排列数
- C语言之基本算法16—条件全排列
- 有限制条件的深度优先遍历生成全排列
- iOS sqlite语句,根据指定条件查找并降序排列
- 多种排列方式满足条件,输出按照名字排列字典序最小的一个
- 排列
- 排列
- 排列
- 排列
- 排列
- 排列
- 排列
- 排列
- 排列
- 团队介绍
- ActionBar详解(七)--->ActionProvider使用示例
- 《Java语言程序设计(基础篇)》读书笔记(二)
- javascript 对url参数进行编码(解决中文乱码问题)
- JVM系列五:JVM监测&工具[整理中]
- 条件排列
- Groovy数据类型
- Csla.net 分布式应用程序、采用对象工厂、登录功能演示 C/S模式
- .NET Interview Test 1
- libevent解析2--函数任务
- 动态改变对话框可调整大小属性
- 2012 Asia Hangzhou Regional Contest--hdu4462Scaring the Birds(IDA)
- javascript 去除字符串中所有的空格or前后的双引号
- 基于标准C语言的数字图像处理基本框架