黑马程序员技术交流社区
标题: 【阳哥专栏】技术分活动第10期 [打印本页]
作者: 王震阳老师 时间: 2014-8-11 12:00
标题: 【阳哥专栏】技术分活动第10期
本帖最后由 就业指导-王震阳老师 于 2014-8-18 11:06 编辑
声明:以后的技术分活动中的技术题,越来越偏向于数据结构、算法、JVM、多线程、高并发等,因此对于基础的要求也是更高的。
活动目的:练习javaSE知识,算法题。
活动奖励:最高3个技术分
结束时间:2014年8月15日,过期提交可能获取不到技术分!
代码提交要求:将自己的源代码压缩然后提交,提交的时候设置为管理员权限,以其他方式提交的答案无效。上交源码的时候不需要将整个工程项目压缩,只需将用到的源文件压缩即可。
题目类型:JavaSE 排列组合算法。
难易程度:容易
题目:老规矩,回帖领题
更多技术分活动:
【阳哥专栏】技术分活动第12期
http://bbs.itheima.com/thread-138162-1-1.html
【阳哥专栏】技术分活动第11期
http://bbs.itheima.com/thread-137632-1-1.html
【阳哥专栏】技术分活动第10期
http://bbs.itheima.com/thread-136866-1-1.html
【阳哥专栏】技术分活动第9期
http://bbs.itheima.com/thread-136465-1-1.html
【阳哥专栏】技术分活动第8期
http://bbs.itheima.com/thread-135781-1-1.html
【阳哥专栏】技术分活动第7期
http://bbs.itheima.com/thread-134321-1-1.html
【阳哥专栏】周末技术分活动第6期
http://bbs.itheima.com/thread-132893-1-1.html
【阳哥专栏】周末技术分活动第5期
http://bbs.itheima.com/thread-129859-1-1.html
【阳哥专栏】周末技术分活动第4期
http://bbs.itheima.com/thread-128854-1-1.html
【阳哥专栏】周末技术分活动第3期
http://bbs.itheima.com/thread-127326-1-1.html
【阳哥专栏】周末技术分活动第2期
http://bbs.itheima.com/thread-125800-1-1.html
【阳哥专栏】周末技术分派送活动第1期
http://bbs.itheima.com/thread-123979-1-1.html
作者: 尘埃落定 时间: 2014-8-11 12:07
看看题先。。
作者: 陈永赛 时间: 2014-8-11 12:12
老衲刚刚学习,圣旨驾到,也来接旨看看。:lol
作者: 冒牌高手 时间: 2014-8-11 12:33
必须得看一下啊
作者: Wokno 时间: 2014-8-11 12:39
路过看看。。。。。。。。。。。。。
作者: 狐狸FMF 时间: 2014-8-11 12:42
看看题
作者: justin1258 时间: 2014-8-11 12:48
来领题~~
作者: 瀚玉 时间: 2014-8-11 13:11
看看。。。。
作者: lpc4276139 时间: 2014-8-11 14:13
先瞅瞅题目
作者: 画了一个圈儿 时间: 2014-8-11 14:14
来领题啦,瞧一瞧能赚技术分的题是啥样子滴
作者: 萍水相逢 时间: 2014-8-11 14:14
领题,做一下
作者: ddewym123 时间: 2014-8-11 14:24
本帖最后由 ddewym123 于 2014-8-11 22:35 编辑
请查收!
-
-
排列组合.rar
1.31 KB, 阅读权限: 200, 下载次数: 1
作者: 逸晨 时间: 2014-8-11 14:35
领题做一下
作者: shijianws 时间: 2014-8-11 14:47
看看题目
作者: wangyang 时间: 2014-8-11 14:53
阳哥威武,继续领题
作者: gmz158 时间: 2014-8-11 15:40
领题
作者: huoshao008 时间: 2014-8-11 15:40
看看题先
作者: weity 时间: 2014-8-11 16:15
我看看,不知道能不能解题~
作者: 萍水相逢 时间: 2014-8-11 16:24
代码提交
-
-
FullSort.zip
93.62 KB, 阅读权限: 200, 下载次数: 2
作者: 马超(Andy) 时间: 2014-8-11 17:51
看看题目
作者: wangyang 时间: 2014-8-11 18:46
烦请阳哥查收!
-
-
Test10.zip
1.16 KB, 阅读权限: 200, 下载次数: 1
字符数组组合
作者: 王石 时间: 2014-8-11 20:19
看看题目
作者: yqj 时间: 2014-8-11 20:29
看看题!
作者: 吴杰栋 时间: 2014-8-11 20:31
拿个题目先
作者: cyc52tjm 时间: 2014-8-11 20:44
来看看题:lol
作者: 王石 时间: 2014-8-11 20:45
代码提交
-
-
Demo.rar
802 Bytes, 下载次数: 230
答案
作者: relive 时间: 2014-8-11 20:55
领题试炼!
作者: AntThinking_toT 时间: 2014-8-11 21:00
看一个。
作者: 叼哥 时间: 2014-8-11 21:28
回复看题
作者: huoshao008 时间: 2014-8-11 21:54
看了很长时间的递归算法才搞懂,望指正,谢谢.
-
-
Perm.zip
1.44 KB, 阅读权限: 200, 下载次数: 2
作者: 13155155528 时间: 2014-8-11 22:21
老办法,回帖看题
作者: yueyuanlin 时间: 2014-8-11 22:43
看一下吧
作者: lpc4276139 时间: 2014-8-11 22:47
本帖最后由 lpc4276139 于 2014-8-11 22:49 编辑
怎么选择管理员可看。。。
作者: bbdeyouxang 时间: 2014-8-11 23:06
回帖取题
作者: S。。。。。F 时间: 2014-8-11 23:15
回帖:lol
作者: Mylan 时间: 2014-8-11 23:17
回帖看题
作者: 王震阳老师 时间: 2014-8-11 23:18
看题目中的说明。
作者: ﹑淼 时间: 2014-8-11 23:45
阿弥陀佛,施主,请开门
作者: yqj 时间: 2014-8-11 23:45
终于做完了,还有很多瑕疵,请阳哥指教(说明,1.txt文件为测试结果记录)
-
-
test.zip
113.65 KB, 阅读权限: 200, 下载次数: 1
作者: lhf_java 时间: 2014-8-11 23:52
学习一下
作者: 左脑想你 时间: 2014-8-12 00:11
看题拿分争取早日进黑马!黑马今天我为你骄傲明天你为我自豪
作者: bbdeyouxang 时间: 2014-8-12 00:29
交题!!!
-
-
GetCombination.rar
1.36 KB, 阅读权限: 200, 下载次数: 1
作者: WakeUp 时间: 2014-8-12 02:09
先瞧瞧题~~
作者: 小糊涂神 时间: 2014-8-12 09:40
,看看题
作者: 刘亚东 时间: 2014-8-12 10:52
回帖领题
作者: lpc4276139 时间: 2014-8-12 12:18
已经提交
-
-
Test5.rar
807 Bytes, 阅读权限: 200, 下载次数: 1
附上代码
作者: 喜爱 时间: 2014-8-12 13:14
来看看啊,好像最近比较频繁啊,有题目!
作者: li963309584 时间: 2014-8-12 14:06
领题,错过一期
作者: MeloX 时间: 2014-8-12 14:20
领题.............
作者: 炎星辰 时间: 2014-8-12 15:38
领题
作者: 阿温 时间: 2014-8-12 16:20
虽然技术分够了,还是做做,领题!
作者: zeus00456 时间: 2014-8-12 16:29
排列组合?请题!
作者: weity 时间: 2014-8-12 17:03
本帖最后由 weity 于 2014-8-12 17:31 编辑
看看42期能不能赶上啊
-
-
ygzl.rar
4.33 KB, 阅读权限: 200, 下载次数: 1
作者: S。。。。。F 时间: 2014-8-12 19:36
提交:lol
-
-
sortArr.rar
1.17 KB, 阅读权限: 200, 下载次数: 1
作者: skyfly 时间: 2014-8-12 21:39
领取题目
作者: _童金辉 时间: 2014-8-12 21:44
来领分了
作者: 杜庆娇 时间: 2014-8-12 22:26
支持阳哥,
作者: zeus00456 时间: 2014-8-12 22:56
呈交解答,自认为是相对完善的版本了
里面附带一张示意图,用来说明思路,
代码各个已做详细注释
对程序全局的描述、第二种模式的实现以及测试结果都在代码前的文档注释中
请老师审阅。
要是能多赏1 2分多好啊
密码盘方式排列组合.rar
(21.82 KB, 下载次数: 1)
作者: Mylan 时间: 2014-8-13 00:47
提交代码
-
-
Demo1.zip
906 Bytes, 阅读权限: 100, 下载次数: 1
作者: 小A 时间: 2014-8-13 00:48
我来领题了
作者: 刘亚东 时间: 2014-8-13 02:54
测试结果是啥意思?
作者: 王震阳老师 时间: 2014-8-13 09:07
就是在控制台打印的结果和你的测试代码。
作者: 小乖乖灬浩歌 时间: 2014-8-13 10:11
又一次前来领题目
作者: 喜爱 时间: 2014-8-13 10:40
好像有一点意思,时间花在组合上了,多次使用到了递归方法。。。。。
-
-
排列组合.rar
18.48 KB, 阅读权限: 100, 下载次数: 1
作者: 沿途小将 时间: 2014-8-13 12:40
我来领题啦
作者: 左脑想你 时间: 2014-8-13 13:27
嘿嘿 ,由于还在上传智基础班做的不好的地方,您给指点一下
运行结果直接写在注释里面了嘿嘿
-
-
左脑想你技术分.rar
817 Bytes, 阅读权限: 100, 下载次数: 4
作者: 杨庆雷 时间: 2014-8-13 18:17
领题了
作者: ljl623786058 时间: 2014-8-13 19:28
路过。。。
作者: fxwb2005 时间: 2014-8-13 20:51
看看题目先
作者: 沿途小将 时间: 2014-8-13 21:04
本帖最后由 沿途小将 于 2014-8-15 13:31 编辑
以后还要这种好事,直接找我
-
-
MyDemo.rar
226.6 KB, 阅读权限: 200, 下载次数: 2
作者: 沿途小将 时间: 2014-8-13 21:07
本帖最后由 沿途小将 于 2014-8-15 13:29 编辑
好像前一次提交错啦!
-
-
MyDemo.rar
226.6 KB, 阅读权限: 200, 下载次数: 1
作者: ┣┫流枫 时间: 2014-8-13 21:26
前来领题
作者: tonglingwang 时间: 2014-8-13 21:54
我又来领题了,这回希望能做下
作者: ┣┫流枫 时间: 2014-8-13 21:57
提交代码
-
-
Desktop.zip
33.44 KB, 阅读权限: 100, 下载次数: 1
作者: Vista 时间: 2014-8-13 23:27
先看看题吧
作者: yesecongcong 时间: 2014-8-13 23:31
回复领题
作者: fantacyleo 时间: 2014-8-14 00:09
看看是神马题目
作者: 常乃伟 时间: 2014-8-14 00:30
来试试题目!!!!!!!!
作者: 无奈的年华ˊ 时间: 2014-8-14 00:33
看下
作者: 반야_바라_밀 时间: 2014-8-14 08:02
必须看一下
作者: 祝幸福 时间: 2014-8-14 08:29
祝幸福,如果您要查看本帖隐藏内容请回复
作者: 반야_바라_밀 时间: 2014-8-14 10:10
楼主大好人,抽空看一下吧。
-
-
Sort.rar
13.03 KB, 阅读权限: 200, 下载次数: 1
全排列算法
作者: 孙小亚 时间: 2014-8-14 11:34
来学习!
作者: hsy 时间: 2014-8-14 12:56
不知题目如何?
作者: 孙小亚 时间: 2014-8-14 13:56
代码+测试结果提交
-
-
排列.rar
19.66 KB, 阅读权限: 200, 下载次数: 2
作者: Stevenj 时间: 2014-8-14 14:19
辛苦了,二师兄
作者: lvlv 时间: 2014-8-14 15:03
学习学习,看看效果 ,怎么样
作者: 天邃任我桓 时间: 2014-8-14 16:06
哪怕不会写,我也想看看题目是怎样的,然后思考怎么做,期望一个月后能写出!
作者: 王石 时间: 2014-8-14 17:17
代码提交
-
-
Demo.rar
802 Bytes, 阅读权限: 200, 下载次数: 1
答案
作者: 奋斗的小耗子 时间: 2014-8-14 18:53
领题
作者: 迷失的独白 时间: 2014-8-14 19:53
先下下来看看,学习一下
作者: 喜爱 时间: 2014-8-14 19:53
还以为和以前一样了!就直接以版主的权限了。。。
-
-
排列组合.rar
18.48 KB, 阅读权限: 200, 下载次数: 1
作者: 逸晨 时间: 2014-8-14 21:29
请查收!
-
-
Permutation.zip
1.78 KB, 阅读权限: 200, 下载次数: 1
作者: Justfeeling 时间: 2014-8-14 21:33
先看看题目先!
作者: EarlyHeart 时间: 2014-8-14 23:08
拿来做做看
作者: Fengs 时间: 2014-8-15 10:42
回帖领题呀
作者: 占星释 时间: 2014-8-15 11:07
看一看呀
作者: justin1258 时间: 2014-8-15 12:31
交题领技术分喽~~
-
-
Permutation.rar
1.3 KB, 阅读权限: 200, 下载次数: 1
作者: 王震阳老师 时间: 2014-8-15 14:10
挺好:
- /*
- 需求:
- 将一组数字、字母或符号进行排列,以得到不同的组合顺序,例如1 2 3这三个数的
- 排列组合有:1 2 3、1 3 2、2 1 3、2 3 1、3 1 2、3 2 1。要求:用户输入一个
- 整数(0到9)数组(数组长度大于等于3,小于10),那么请在控制台打印出该数组
- 中所有成员的排列组合。详细代码+测试结果才可获得满分。
- */
- import java.util.*;
- class PermutationDemo
- {
- public static void main(String[] args)
- {
- String str = null;
- str = input(str);
-
- char[] arr = str.toCharArray();
- int start = 0;
- int end = arr.length-1;
-
- System.out.println("您输入的整数数组的排列组合结果为:");
- perm(arr, start, end);
- }
-
- //input方法:用于用户输入数组。
- public static String input(String str)
- {
- boolean flag = true;
- System.out.println("请输入一个0到9的整数数组,数字之间不要有空格");
- Scanner sc = new Scanner(System.in);
- str = sc.next();
- if(str.length()>= 10 || str.length()<3)
- {
- System.out.println("您输入的数组长度不正确,数组的长度应大于等于3,小于10");
- str = input(str);
- }
- flag = judge(str);
- if(flag==false) str = input(str);
- return str;
- }
-
- //judge方法:用于判断输入的是否是整数数组。如果把这个方法去掉,input关于flag的地方去掉可以对字母或是符号进行排列组合。
- public static boolean judge(String str)
- {
- for(int i = 0; i<str.length(); i++)
- {
- char c = str.charAt(i);
- if(c>='0' && c<='9');
- else
- {
- System.out.println("您输入的不是整数数组。");
- return false;
- }
- }
- return true;
- }
- //perm方法:用递归的方式对数组中的元素进行排列组合。
- public static void perm(char[] arr, int start, int end)
- {
- int i;
-
- if(start == end)
- {
- for(i = 0; i <= end; i++)
- {
- System.out.print(arr[i]+" ");
- }
- System.out.println();
- }
- else
- {
- for(i = start; i <= end; i++)
- {
- swap(arr,i,start);
- perm(arr,start+1,end);
- swap(arr,i,start);
- }
- }
- }
-
- //swap方法:交换数组中的两个元素。
- public static void swap(char[] arr, int a, int b)
- {
- char temp = arr[a];
- arr[a] = arr[b];
- arr[b] = temp;
- }
- }
复制代码
作者: 王震阳老师 时间: 2014-8-15 14:11
挺好:
- package com.itheima.grup;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- /**
- *
- * @author 喜爱
- * 将一组数字、字母或符号进行排列,以得到不同的组合顺序,例如1 2 3这三个数的排列组合有:1 2 3、1 3 2、2 1 3、2 3 1、3 1 2、3 2 1。
- * 要求:用户输入一个整数(0到9)数组(数组长度大于等于3,小于10),那么请在控制台打印出该数组中所有成员的排列组合。
- * 详细代码+测试结果才可获得满分。
- */
- public class DataGrupDemo {
- public static void main(String[] args) {
- noticeWord(1,null);
- String line = inputData();
- line = verifyStr(line);
- noticeWord(3,line);
- String[] str = line.split(",");
- noticeWord(4,"您输入的" + str.length +"个数据,最终排列组合有:");
- sortGrup(str,0,str.length - 1);
- }
- /**
- * 排序组合方法
- * @param str 组合数组
- * @param start 开始位置
- * @param end 结束位置
- */
- private static void sortGrup(String[] str, int start, int end) {
- if (start == end) {
- // 当只要求对数组中一个数字进行全排列时,只要就按该数组输出即可
- for (int i = 0; i <= end; i++) {
- System.out.print(str[i] + " ");
- }
- System.out.println();
- } else {
- // 多个数字全排列
- for (int i = start; i <= end; i++) {
- // 交换数组第一个元素与后续的元素
- String temp = str[start];
- str[start] = str[i];
- str[i] = temp;
- // 后续元素递归全排列
- sortGrup(str, start + 1, end);
- // 将交换后的数组还原
- temp = str[start];
- str[start] = str[i];
- str[i] = temp;
- }
- }
- }
- /**
- * 校验数据的组合
- * @param line 输入的数据
- * @return String
- */
- private static String verifyStr(String line){
- //当然输入的是为空 时候,打印提示信息,要求重新输入
- while(line == null || "".equals(line)){
- noticeWord(2,null);
- noticeWord(1,null);
- line = inputData();
- }
-
- //对数据的数据进行校验,检查输入的内容是否是整数
- String[] str = line.split(",");
- String regex = "[0-9]+";
- for (String string : str) {
- if(!string.matches(regex)){
- noticeWord(2,null);
- noticeWord(1,null);
- line = inputData();
- line = verifyStr(line);
- break;
- }
- }
- //判断输入的数据的个,确保输入的数据个数在[3,10)之间
- if(str.length < 3 || str.length >= 10){
- noticeWord(2,null);
- noticeWord(1,null);
- line = inputData();
- line = verifyStr(line);
- }
- //最终返回数据
- return line;
- }
- /**
- * 接收输入数据的方法
- * @return String
- */
- private static String inputData() {
- BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
- String line = null;
- try {
- line = bufferReader.readLine();
- } catch (IOException e) {
- throw new RuntimeException("读取数据失败。。。");
- }
- return line;
- }
-
- /**
- * 提示信息的方法
- * @param index
- * @param temp
- */
- private static void noticeWord(int index,String temp){
- switch (index) {
- case 1:
- System.out.println("请输入一组整数数据,要求数据的个数大于等于3个,小于10个,数据之间使用 ','(逗号使用英文状态下的符号,输完请回车):");
- break;
- case 2:
- System.out.println("您输入有误,请重新输入!");
- break;
- case 3:
- System.out.println("您输入的一组数据是:" + temp);
- break;
- case 4:
- System.out.println(temp);
- break;
- }
- }
- }
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |