`
825197453
  • 浏览: 101761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java编程经典算法

阅读更多

算法程序题:
    该公司笔试题就1个,要求在10分钟内作完。
    题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。


现在把两种解法公布于下:

方法一:

private static String[] forbidenNumber = new String[] { "0", "6", "7", "8",
			"9" };
	private static String[] mustExistNumber = new String[] { "1", "2", "2",
			"3", "4", "5" };

	private static boolean isValidNumber(String str) {
		// 检查是否有非法数字,有返回false,否则继续
		for (String number : forbidenNumber) {
			if (str.indexOf(number) >= 0) {
				return false;
			}
		}
		// 检查是否存在要的数字,如果不存在返回false,否则继续
		for (String number : mustExistNumber) {
			int temp = str.indexOf(number);
			if (temp < 0) {
				return false;
			} else if ((str.indexOf(number, temp + 1) > temp)
					&& str.charAt(temp) != '2') {
				return false;
			}
		}
		// 检查4在不在第三位,是返回false
		if (str.charAt(2) == '4') {
			return false;
		}
		// 检查是否存在35在一起,有返回false
		if (str.indexOf("35") >= 0 || str.indexOf("53") >= 0) {
			return false;
		}
		return true;
	}

	public static void main(String[] args) {
		// TODO code application logic here
		for (int i = 122345; i < 543221; i++) {
			if (isValidNumber(String.valueOf(i))) {
				System.out.println(i);
			}
		}
	}

 

private static String[] mustExistNumber = new String[] { "1", "2", "2",   
            "3", "4", "5" };   
  
    private static boolean isValidNumber(String str) {   
  
        // 检查是否包含12345这五个数,不包含返回false   
        for (String number : mustExistNumber) {   
            if (str.indexOf(number) < 0)   
                return false;   
        }   
  
        // 检查是否有两个2,只有一个返回false   
        if (str.lastIndexOf("2") == str.indexOf("2")) {   
            return false;   
        }   
  
        // 检查4在不在第三位,是返回false   
        if (str.charAt(2) == '4') {   
            return false;   
        }   
        // 检查是否存在35在一起,有返回false   
        if (str.indexOf("35") >= 0 || str.indexOf("53") >= 0) {   
            return false;   
        }   
        return true;   
    }   
  
    public static void main(String[] args) {   
        // TODO code application logic here   
        for (int i = 122345; i < 543221; i++) {   
            if (isValidNumber(String.valueOf(i))) {   
                System.out.println(i);   
            }   
        }   
    }  

 

分享到:
评论

相关推荐

    java最新经典算法源码

    在"java最新经典算法源码"这个压缩包中,包含了一系列与Java编程相关的资源,特别是针对Java基础编程和算法的实践练习。这些资源对于学习者提升编程技能,以及准备Java面试来说非常有价值。 首先,`java基础编程...

    Java中经典的算法.zip

    Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的...

    java经典算法合集

    Java经典算法合集是Java编程语言中的一些经典算法的集合,这些算法涵盖了字符串处理、文件操作、数组处理等多个方面。下面,我们将对这些算法进行解读和分析。 1. 算法与编程 在这个算法中,我们需要编写一个程序...

    JAVA绝对经典算法

    在《JAVA绝对经典算法》中,程序1展示了如何通过递归方法计算斐波那契数列。斐波那契数列是一个非常著名的数列,在自然界、艺术、建筑等众多领域都有其身影。数列的前两项通常定义为1,之后每一项都是前两项的和。 ...

    java经典算法 java经典算法

    Java经典算法涵盖了许多在编程和数据结构中常用的方法和技巧,这些算法可以帮助开发者解决各种问题。以下是基于给定文件中的四个程序所体现的关键知识点: 1. **斐波那契数列** (程序1) - 斐波那契数列是这样一个...

    JAVA经典算法题编程资料

    JAVA经典算法题

    JAVA经典算法40题.pdf

    JAVA经典算法40题.pdf 本资源是JAVA经典算法40题的PDF文件,该文件包含了40...该资源提供了40个Java经典算法的实现,涵盖了多种算法问题的解决方法,能够帮助开发者和学习者更好地理解和掌握Java编程语言和算法思想。

    java中的经典算法经典算法

    Java编程语言以其强大的功能和广泛的应用领域而闻名,其中算法是其核心部分。经典算法是任何程序员必备的技能,无论是在解决复杂问题、优化代码性能还是面试中,都发挥着至关重要的作用。在这个名为"AlgorithmGossip...

    java经典程序题及算法含代码

    Java经典程序题及算法含代码是一份非常实用的Java编程资源,能够帮助Java开发者提高编程能力和算法思维能力。但是,需要注意的是,该资源仅供学习和参考,不得用于商业目的。 以下是对每个程序题的详细分析: 程序...

    JAVA经典算法面试39题及答案

    本资源总结了39道经典的 JAVA 算法面试题目,每个题目都附带答案,涵盖了常见的算法问题,旨在帮助读者更好地掌握 JAVA 编程语言和算法设计。 算法概述 算法是计算机科学中最重要的组成部分,指的是解决特定问题的...

    JAVA算法编程题目及答案.doc

    本资源提供了50道JAVA算法编程题目及答案,涵盖了算法设计、数据结构、程序设计等多个方面的知识点。以下是对标题、描述、标签和部分内容的详细解释: 标题:JAVA算法编程题目及答案 本资源的标题明确地表明了其...

    java经典算法90题含源码及答案.rar

    Java经典算法90题含源码及答案的资源是一份非常宝贵的资料,它涵盖了大量用于提升Java编程技能和算法理解的题目。这份压缩包包含了三份文档:JAVA经典算法40题.doc、最新JAVA编程题全集_50题及答案.doc、50道JAVA...

    java100经典算法案例

    java100经典算法案例,内容充实, 部分内容如下,点击下载可看全部哦!! 程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,...

    java经典算法练习题

    本压缩包包含了三个文档,分别是“JAVA经典算法40题.doc”、“最新JAVA编程题全集_50题及答案.doc”和“50道JAVA基础编程练习题.doc”,这些资源为初学者提供了大量的实践机会,有助于深入理解和运用Java。...

    JAVA经典算法合集

    JAVA经典算法合集 本资源摘要信息涵盖了四个经典算法程序,分别是:兔子繁殖问题、判断...这些经典算法程序涵盖了递归函数、循环控制、判断素数、分解质因数等多种编程技术,能够帮助程序员熟悉JAVA语言和算法设计。

    1204 Java 遗传算法排课java sqlserver.rar_java排课算法_排课_排课系统java_遗传算法Java

    标题中提到的“1204 Java 遗传算法排课java sqlserver.rar”是一个基于Java编程语言开发的排课系统,它采用遗传算法来优化排课过程,并将数据存储在SQL Server数据库中。SQL Server是一种关系型数据库管理系统,提供...

    JAVA经典算法90题【含源码】

    接下来,"最新JAVA编程题全集_50题及答案.doc"可能涵盖了更多实际编程场景中的问题,比如字符串处理、文件操作、数据结构(栈、队列、链表、树等)的应用,以及面向对象设计原则的实践。这些题目可能涉及如何使用...

    java编程与算法

    java编程与算法题,可以下载学习一下,对编程有很大帮助

    JAVA经典算法30题

    JAVA经典算法30题 本资源是一个java经典算法题库,共包含30个经典算法题目,涵盖了多种算法领域,包括递归、素数、水仙花数、质因数分解等。 程序1:兔子繁殖问题 该程序解决了一个经典的问题:有一对兔子,从...

    java经典问题算法及源代码

    本资源“java经典问题算法及源代码”聚焦于Java编程中的算法实现,是学习和提升Java算法能力的好材料。算法是解决问题的核心工具,无论是在面试中还是实际工作中,对算法的理解和掌握都是程序员必备的技能。 首先,...

Global site tag (gtag.js) - Google Analytics