原题如下:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
解题思路:
很明显,这是一个递归算法。我们可以排列将这6个数按从小到大的顺序排一下,如果是1,2,3,4,5,6,那么会有1*2*3*4*5*6= 6!=720个递增的数。但如果是1,2,2,3,4,5,那么在这720个数中一定会有相同的数对出现(由于在这6个数中只有两个数两同,也就是说,如果有重复的数,那么一定是一对数,如122345会出现两次)。
排列的基本规则是分步进行。也就是说,要排列上面6个数,首先应该选择第一个数,这第一个数可以选择这6个数中的任意一个,如选择1.第二步是选择第二个数,这第二个数不能再选择已经选过的数,如1.因此,它只能从后面5个数中选择。如选择2。以此类推。
我们也可以在程序中模拟这一过程。源程序如下:
publicclasstest1
{
privateint[]numbers=newint[]
{1,2,3,3,4,5};
publicintn;
privateStringlastResult="";
privatebooleanvalidate(Strings)
{
if(s.compareTo(lastResult)<=0)
returnfalse;
if(s.charAt(2)=='4')
returnfalse;
if(s.indexOf("35")>=0||s.indexOf("53")>=0)
returnfalse;
returntrue;
}
publicvoidlist(Stringindex,Stringresult)
{
for(inti=0;i<numbers.length;i++)
{
if(index.indexOf(i+48)<0)
{
Strings=result+String.valueOf(numbers[i]);
if(s.length()==numbers.length)
{
if(validate(s))
{
System.out.println(s);
lastResult=s;
n++;
}
break;
}
list(index+String.valueOf(i),s);
}
}
}
publicstaticvoidmain(String[]args)
{
test1t=newtest1();
t.list("","");
System.out.println("总数:"+t.n);
}
}
public class test1
{
private int[] numbers = new int[]
{ 1, 2, 3, 3, 4, 5 };
public int n;
private String lastResult = "";
private boolean validate(String s)
{
if (s.compareTo(lastResult) <= 0)
return false;
if (s.charAt(2) == '4')
return false;
if (s.indexOf("35") >= 0 || s.indexOf("53") >= 0)
return false;
return true;
}
public void list(String index, String result)
{
for (int i = 0; i < numbers.length; i++)
{
if (index.indexOf(i + 48) < 0)
{
String s = result + String.valueOf(numbers[i]);
if (s.length() == numbers.length)
{
if (validate(s))
{
System.out.println(s);
lastResult = s;
n++;
}
break;
}
list(index + String.valueOf(i), s);
}
}
}
public static void main(String[] args)
{
test1 t = new test1();
t.list("", "");
System.out.println("总数:" + t.n);
}
}
分享到:
相关推荐
一著名软件公司的java笔试算法题!不错噢!
Java笔试题.docx Java重点面试题 – 针对java面试过程中经常遇到的一些试题进行总结.docx JAVA面试基础知识点总结.docx Java面试笔记.docx 写出正则表达式,从一个字符串中提取链接地址.docx 出现几率最高和覆盖范围...
JAVA笔试面试资料 NET面试题笔试题 web开发 中兴资料 微软笔试面试 数据库面试题笔试题 百度笔试面试 算法 数据结构 网易搜狐新浪笔试面试 腾讯笔试面试 计算机基础 计算机网络 软件测试 阿里巴巴笔试面试
中兴笔试题 包括java笔试题,C++笔试题 ,软件工程笔试题等等
算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生...
华勤java笔试题 最近需要从文本中抽取结构化信息,用到了很多github上的包,遂整理了一下,后续会不断更新。 很多包非常有趣,值得收藏,满足大家的收集癖! 如果觉得有用,请分享并star,谢谢! 涉及内容包括:中...
Java笔试题目汇总.pdf Java面试宝典_2010.doc 面试全攻略100题.doc 智力题和答案.doc C语言面试题大汇总.doc 计算机专业必备笔试面试锦囊.doc 笔试.rar 面试题集合.zip C语言面试题大汇总1.doc 面试题集合 java面试...
2015创新工场校招研发笔试题.pdf 2015小米校招技术类笔试题.pdf 2015届阿里巴巴校招测试开发工程师在线笔试题.pdf 2015年欢聚时代校园招聘C++笔试题目.pdf ... 浙江大华2015届校园招聘算法、软件类笔试题.pdf
2018秋招java笔试题 Java Review 1. 数据结构和算法 红黑树 代码: ) 图解: 2. 面试题 2021.4.10 英礡Improbable笔试题 (2021 Improbable Intern Online Test) 括号匹配 约瑟夫环 2021.03.31 华为校园招聘软件笔试题...
初级java笔试题编程面试大学 我最初创建它是为了成为一名软件工程师的学习主题的简短待办事项列表,但它增长到您今天看到的大列表。 完成这个学习计划后,! 你可能不需要像我一样学习。 总之,你需要的都在这里。 ...
java笔试题算法基于朴素贝叶斯的文本分类 方法 开发环境 我们的项目将使用Java编写,使用lucene进行文本分析,使用log4j记录统计信息,以便我们可以专注于不同文本分类算法的实现。 这个软件是如何工作的? 我们的...
软件大数据面试笔试复习资料面试技巧HR面试常问的问题总结面试笔试题整理资料合集: 01大数据面试复习----Java基础---集合类、多线程、JVM 02大数据面试复习----画重点----常问问题分析 03大数据面试复习----画重点--...
java笔试题算法印尼OSS项目列表 想做出贡献吗? 寻找灵感来源? 想在社区中合作吗? 查看以下列表。 注意:你想把你的 OSS 项目放到这里吗? 请发送 PR(拉取请求)。 请保持字母顺序。 公司OSS项目 以下是由公司...
│ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海...
亚信java笔试题 JobInterviewInAction this is the collection of my codes for job interview 面试的公司 寒武纪:一面挂,(岗位不匹配,自己一个做软件的,问我计算机组成原理,高性能计算,我当时心都凉了) ...
字节跳动java笔算法试题 程序员应该访问的最佳网站 一些对程序员有用的网站。 在学习 CS 时,您必须了解一些有用的网站,以便随时了解最新信息,以便更好地掌握技术并学习新事物。 这是您应该访问的一些网站的非详尽...
│ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海...
字节跳动java笔算法试题 初创企业 程序员应该访问的最佳网站 一些对程序员有用的网站。 在学习 CS 时,您必须了解一些有用的网站,以便随时了解最新信息,以便更好地掌握技术并学习新事物。 这是您应该访问的一些...
java笔试题算法 纳维蒂亚 (pronounce [navi-sia]) 版本 构建状态 执照 聊天 代码覆盖率 推介会 欢迎使用 Navitia 存储库! Navitia 是一个网络服务,提供: 多模式旅程计算 线路时刻表 下次出发 公共交通数据探索 ...
│ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海...