备考蓝桥杯(5)扑克排列 java实现
2018-03-29 16:14
197 查看
package pers.robert.lanqiaobeizhenti129; import java.util.Arrays; import java.util.List; import java.util.Vector; /** * 7.扑克牌排列 下面代码模拟了一套扑克牌(初始排序A~K,共13张)的操作过程。 操作过程是: * 手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,.... 如此循环操作,直到剩下最后一张牌也放在桌子上。 * 下面代码的目的就是为了求出最后桌上的牌的顺序。 初始的排列如果是A,2,3...K,则最后桌上的顺序为: [2, 4, 6, 8, 10, Q, A, * 5, 9, K, 7, 3, J] 请分析代码逻辑,并推测划线处的代码。 答案写在“解答.txt”文件中 * 注意:只写划线处应该填的内容,划线前后的内容不要抄写。 * * @author Robert * */ public class The007CardDemo1 { public static List moveCard(List src) { if (src == null) return null; List dst = new Vector(); for (;;) { if (src.size() == 0) break; // 填空 src.add(src.remove(0)); dst.add(src.remove(0)); // 填空 } return dst; } public static void main(String[] args) { List a = new Vector(); //返回由指定数组支持的一个固定大小的列表。 a.addAll(Arrays.asList("A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K")); System.out.println(moveCard(a)); } }分析:这道题的妙处在于实现从0下标删除,又同时把该被删除的元素添加到尾部public static List moveCard(List src) {
if (src == null)
return null;
List dst = new Vector();
for (;;) {
if (src.size() == 0)
break; // 填空
src.add(src.remove(0));
dst.add(src.remove(0)); // 填空
}
return dst;
相关文章推荐
- 备考蓝桥杯(37)超级无敌经典的全排列算法 java实现
- 蓝桥杯-扑克序列(Java全排列的实现)
- 蓝桥杯备考(15)NQueen(经典回溯) java实现
- 备考蓝桥杯(6)纵横火柴游戏 java实现
- 备考蓝桥杯(27)迷宫走法(java实现)
- 备考蓝桥杯(23)G将军准备敢死队 java实现
- 备考蓝桥杯(17)分巧克力 java实现
- 备考蓝桥杯(9)密码转换器 java实现
- 备考蓝桥杯(14)playfair加密java实现
- 备考蓝桥杯(29)基因牛的繁殖java实现
- 备考蓝桥杯(1)算式☆☆☆ + ☆☆☆ = ☆☆☆ java 实现(全排列)
- 备考蓝桥杯(12)输入日期 java实现
- 备考蓝桥杯(38)迭代器输出java实现
- 备考蓝桥杯(19)方格填数(DFS) java实现
- 蓝桥杯备考(11)微生物增殖 java实现
- 备考蓝桥杯(28)黑洞数字java实现
- 备考蓝桥杯(10)矩阵旋转 java实现
- 备考蓝桥杯(16)包子问题 java实现
- 备考蓝桥杯(26)漏掉的账单明细,(遍历所有情况)(java实现)(exforward)
- 备考蓝桥杯(34)泊松汾酒java实现exeforward