`
zkf_2010
  • 浏览: 8053 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

java算法之打印数字的组合顺序

阅读更多

题目:用1、2、2、3、4、5这6个数字组成一个序列,列出所有可能出现的顺序。

要求

1. 数字4不能位于第三位

23和5不能连在一起

 

今天上网看到一个好的解决思路,整理如下:

代码:

public class Test{
	static int[] in={1,2,2,3,4,5};
	public static void main(Strin[] args){		
		for(int i = 122345;i<=543221;i++){
			String string = String.valueOf(i);
			if(checkOne(string) && checkTwo(string) 
					&& checkThree(string)
					&& checkFour(string)){
				System.out.println(string);
			}
		}
	}
	/**
	 * 不包含0,6,7,8,9
	 * @author zkf
	 * @createTime 2013-7-20
	 * @param str
	 * @return boolean
	 */
	public static boolean checkOne(String str){
		Pattern p = Pattern.compile("[0[6-9]]");
		Matcher matcher = p.matcher(str);
		matcher.matches();
		if(matcher.find()){
			return false;
		}	
		return true;
	}
	/**
	 * 必须是1,2,2,3,4,5六个数
	 * @author zkf
	 * @createTime 2013-7-20
	 * @param str
	 * @return boolean
	 */
	public static boolean checkTwo(String str){
		for (int i = 0; i < in.length; i++) {
			if(!str.contains(String.valueOf(in[i]))){
				return false;
			}
		}
		if(str.indexOf("2") == str.lastIndexOf("2")){
			return false;
		}
		return true;
	}
	/**
	 *4不能位于第3位
	 * @author zkf
	 * @createTime 2013-7-20
	 * @param str
	 * @return boolean
	 */
	public static boolean checkThree(String str){ 
		if(str.indexOf("4") == 2){
			return false;
		}
		return true;
	}
	/**
	 *35不能相连
	 * @author zhangkefei
	 * @createTime 2013-7-20
	 * @param str
	 * @return boolean
	 */
	public static boolean checkFour(String str){ 
		if(Math.abs(str.indexOf("3")-str.indexOf("5")) == 1){
			return false;
		}
		return true;
	}
}

 

 

0
0
分享到:
评论

相关推荐

    java自学之道

    第3章 Java常用算法 3.1递归算法 3.2冒泡排序算法 3.3 快速排序算法 3.4选择排序算法 3.5直接插入算法 3.6希尔排序算法 3.7 二分查找算法 3.8 二叉树 3.9 图的实现 3.10 生产者消费者的实现 3.11 银行家算法 3.12 ...

    Java面试宝典-经典

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    Java面试宝典2010版

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    java面试题大全(2012版)

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;部分 82 1. 判断第二个日期比第...

    最新Java面试宝典pdf版

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    java面试宝典2012

    11、有数组a[n],用java代码将数组元素顺序颠倒 87 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 88 三. html&JavaScript;&ajax;部分 89 1. 判断第二个日期比第...

    Java面试笔试资料大全

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    JAVA面试宝典2010

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    Java面试宝典2012新版

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;部分 82 1. 判断第二个日期比第...

    Java面试宝典2012版

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;部分 82 1. 判断第二个日期...

    matlab物价的波动代码-school_projects:罗切斯特理工学院Python,Java,Matlab,Promela和Alloy中

    使用比较器和可比函数显示投资者的投资组合字母顺序或数字顺序 投资组合包括股票和资金。 Python专案: 宠物小精灵(个人) 模拟口袋妖怪游戏的程序。 主要设置游戏:通过提示用户输入信息,使用牌组作为堆,使用...

    Java开发技术大全 电子版

    Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释...

    leetcode二维数组-programming_exercises:leetcode、nowcoder刷题之路

    该src/main/java目录下,以文件夹命名,表示的是不同的来源 每个文件均可单独运行 其他IDEA克隆项目时,注意配置IDEA,gradle,jdk等,保证项目正常运行 Git仓库: 排序算法总结 面试编程题... 剑指Offer编程题目录 ...

    Java 面试宝典

    16、下面的代码有什么不妥之处? ............................................................................... 14 17、请说出作用域 public,private,protected,以及不写时的区别 ...........................

    易语言程序免安装版下载

    数据库操作支持库增加读写长整数字段的功能,但受限于系统接口暂不能读写超出整数范围的数值。 7. 修改高级表格支持库,通过鼠标调整行高列宽时不改变当前光标行列号。 8. 修改BUG:在IDE中打开源代码文件(.e)后...

Global site tag (gtag.js) - Google Analytics