ava实现排列组合java全排列全组合排列组合.doc

ava实现排列组合java全排列全组合排列组合.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA面试题(算法篇) ?(2011-02-18 22:25:09) 转载▼ 面试 ? 算法 ? 最大公约数 ? 最小公倍数 ? 杂谈 分类:?JAVA面试题 ?? public?class?Convention?{?? ?????? ????int?divisor(int?m,int?n){??? ????????if(m%n==0){?? ???????????return?n;?? ???????}else{?? ???????????return?divisor(n,m%n);?? ???????}?? ????}?? ?????? ????int?gbs(int?a,int?b){?? ????????int?gbs?=?0;?? ????????gbs?=?a*b/divisor(a,b);?? ????????return?gbs;?? ????}?? }?? 算法程序题: ????该公司笔试题就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

您可能关注的文档

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档