算法程序题:
该公司笔试题就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中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的算法 Java中经典的...
Java经典算法合集是Java编程语言中的一些经典算法的集合,这些算法涵盖了字符串处理、文件操作、数组处理等多个方面。下面,我们将对这些算法进行解读和分析。 1. 算法与编程 在这个算法中,我们需要编写一个程序...
在《JAVA绝对经典算法》中,程序1展示了如何通过递归方法计算斐波那契数列。斐波那契数列是一个非常著名的数列,在自然界、艺术、建筑等众多领域都有其身影。数列的前两项通常定义为1,之后每一项都是前两项的和。 ...
Java经典算法涵盖了许多在编程和数据结构中常用的方法和技巧,这些算法可以帮助开发者解决各种问题。以下是基于给定文件中的四个程序所体现的关键知识点: 1. **斐波那契数列** (程序1) - 斐波那契数列是这样一个...
JAVA经典算法题
JAVA经典算法40题.pdf 本资源是JAVA经典算法40题的PDF文件,该文件包含了40...该资源提供了40个Java经典算法的实现,涵盖了多种算法问题的解决方法,能够帮助开发者和学习者更好地理解和掌握Java编程语言和算法思想。
Java编程语言以其强大的功能和广泛的应用领域而闻名,其中算法是其核心部分。经典算法是任何程序员必备的技能,无论是在解决复杂问题、优化代码性能还是面试中,都发挥着至关重要的作用。在这个名为"AlgorithmGossip...
Java经典程序题及算法含代码是一份非常实用的Java编程资源,能够帮助Java开发者提高编程能力和算法思维能力。但是,需要注意的是,该资源仅供学习和参考,不得用于商业目的。 以下是对每个程序题的详细分析: 程序...
本资源总结了39道经典的 JAVA 算法面试题目,每个题目都附带答案,涵盖了常见的算法问题,旨在帮助读者更好地掌握 JAVA 编程语言和算法设计。 算法概述 算法是计算机科学中最重要的组成部分,指的是解决特定问题的...
本资源提供了50道JAVA算法编程题目及答案,涵盖了算法设计、数据结构、程序设计等多个方面的知识点。以下是对标题、描述、标签和部分内容的详细解释: 标题:JAVA算法编程题目及答案 本资源的标题明确地表明了其...
Java经典算法90题含源码及答案的资源是一份非常宝贵的资料,它涵盖了大量用于提升Java编程技能和算法理解的题目。这份压缩包包含了三份文档:JAVA经典算法40题.doc、最新JAVA编程题全集_50题及答案.doc、50道JAVA...
java100经典算法案例,内容充实, 部分内容如下,点击下载可看全部哦!! 程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,...
本压缩包包含了三个文档,分别是“JAVA经典算法40题.doc”、“最新JAVA编程题全集_50题及答案.doc”和“50道JAVA基础编程练习题.doc”,这些资源为初学者提供了大量的实践机会,有助于深入理解和运用Java。...
JAVA经典算法合集 本资源摘要信息涵盖了四个经典算法程序,分别是:兔子繁殖问题、判断...这些经典算法程序涵盖了递归函数、循环控制、判断素数、分解质因数等多种编程技术,能够帮助程序员熟悉JAVA语言和算法设计。
标题中提到的“1204 Java 遗传算法排课java sqlserver.rar”是一个基于Java编程语言开发的排课系统,它采用遗传算法来优化排课过程,并将数据存储在SQL Server数据库中。SQL Server是一种关系型数据库管理系统,提供...
接下来,"最新JAVA编程题全集_50题及答案.doc"可能涵盖了更多实际编程场景中的问题,比如字符串处理、文件操作、数据结构(栈、队列、链表、树等)的应用,以及面向对象设计原则的实践。这些题目可能涉及如何使用...
java编程与算法题,可以下载学习一下,对编程有很大帮助
JAVA经典算法30题 本资源是一个java经典算法题库,共包含30个经典算法题目,涵盖了多种算法领域,包括递归、素数、水仙花数、质因数分解等。 程序1:兔子繁殖问题 该程序解决了一个经典的问题:有一对兔子,从...
本资源“java经典问题算法及源代码”聚焦于Java编程中的算法实现,是学习和提升Java算法能力的好材料。算法是解决问题的核心工具,无论是在面试中还是实际工作中,对算法的理解和掌握都是程序员必备的技能。 首先,...