java练习:打印 数字1、2、3、4的组合,不能以4开头,1和3不能相邻,且数字不能重复
来源:互联网 发布:美津浓和亚瑟士 知乎 编辑:程序博客网 时间:2024/05/22 02:48
public class Test6 { /** * 用1、2、3、4这四个数字,用java写一个main函数,打印出所有不同的排列,如:1234、1243等, * 要求:"4"不能在第一位,"1"与"3"不能相连。 */ public static void main(String[] args) { // TODO Auto-generated method stub //正则表达式,代表不以4开头的字符串 String regex1 = "^[^4].*$"; //代表1和3相连的字符串 String regex2 = ".*[1][3].*$"; String regex3 = ".*[3][1].*$"; //建立存储组合的字符 StringBuilder sb = new StringBuilder(""); String str = null; int count = 0;//统计个数 for(int i = 1;i < 5;i++){ for (int j = 1 ; j < 5; j++) { for(int k = 1; k < 5 ; k++){ for(int h = 1 ; h < 5 ; h++){ sb.append(i).append(j).append(k).append(h); str = sb.toString(); if(str.matches(regex1))//不以4开头 { if(!(str.matches(regex2)||str.matches(regex3))){//1和3不相连 if(single(str)){ //过滤,只要数字不重复的组合 count++; System.out.println(str+"..."+count); } } } sb.delete(0,sb.length()); } } } } } private static boolean single(String str) { //去除相同数字 // TODO Auto-generated method stub boolean flag = true; for(int i = 1;i < 5;i++){ int count = 0; int offset = 0; while((offset = str.indexOf(String.valueOf(i),offset))!=-1){ offset += 1; count++; if(count > 1){ flag = false; break; } } } return flag; }}运行结果
1234...11243...21423...31432...42143...52341...63214...73241...83412...93421...10
0 0
- java练习:打印 数字1、2、3、4的组合,不能以4开头,1和3不能相邻,且数字不能重复
- java面试题 用1,2,2,3,4,5六个数字,组成一个6位数。 第三位数不能是2;3和5不能相邻。
- 随机生成1-100的数字,且不能重复
- 利用1、2、2、3、4这5个数字,打印出所有不同的排列,不能有重复
- 【2015/10/13】打印1,2,2,3,4,5六个数的组合,4不在第三位,3和5不能相邻
- 有1,2,2,3,4,5六个数,要求输出他们组合的全排列,4不能在第三位,5和3不能相邻
- ACCESS表名不能以数字开头
- 输出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的所有排列组合,4不能在第三位,3和5不能相邻
- 用 1,2,2,3,4,5 六个数字,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- EditText中输入的内容不能小于一位数字切不能以0开头
- 输出{1,2,2,3,4,5}排列组合,4不能在第三位,3和5不能相邻
- 有 1、 2、 3、 4 个数字, 能组成多少个互不相同且无重复数字的三位数? 计算并打印出这些数字
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 数据结构之---C语言实现连式多项式
- 《剑指Offer》面试题:对字符串进行循环左移
- php添加socket的扩展
- Linux 下安装windows软件:例如Source Insight
- java的一些语法基础(一)
- java练习:打印 数字1、2、3、4的组合,不能以4开头,1和3不能相邻,且数字不能重复
- php环境的搭建
- java.sql.SQLException: Value'0000-00-00'异常解决
- 如何在Android模拟器上安装apk文件
- 窗口-CCF测试往届题
- 一个简单的jsp+servlet实例,实现简单的登录
- 网络性能测试工具iperf详细使用图文教程
- Hadoop/spark安装实战(系列篇3) Hadoop 伪分布模式安装
- HDU 5432 BC - Pyramid Split(二分 + 模拟)