蓝桥 - 拉马车

题目链接:

  1. 蓝桥杯练习系统 PREV-44
  2. 华东理工大学OJ - 1335

题目概括:

  1. 实际上原理类似于小时候玩的《丁钩钓鱼》游戏。
  2. 分为A和B两方,两人初始手牌不超过30张。
  3. 由A方先出牌,再由B方出牌。
  4. 玩家出牌后,若场上有相同点数的牌,则将相同点数牌及其中间的牌全部置入该玩家手牌牌底(题目说,为了方便,置入手牌的牌序与桌面的牌序相反)。
    > 桌面: K321K
    > 置入手牌: K123K
    
  5. 从桌面赢牌的一方,需继续出牌。
  6. 当某一方出完手上的最后一张牌,且无法从桌面获取牌时,则另一方胜利。
  7. 当无法有玩家获胜时,输出-1

题目分析:

  1. 桌面上的牌后进先出可以使用堆栈来储存。
  2. 玩家的手牌先进先出可以使用队列来储存。
  3. 由于两位玩家初始手牌最多为30张,当多次循环后,无法有一方胜利,我们认为最大循环次数不超过10000次。当出牌10000次还是无法有玩家获胜,则认为是无解。

代码如下:

import java.util.*;
 
public class Main {
   
    public static void main(String[] args) {
   
        Scanner in = new Scanner(System.in);
        String a = in.next();
        String b = in.next();
        Stack<Character> desk = new Stack<Character>();
        Queue<Character> playerA = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值