社区常称:小猫钓鱼纸牌游戏
通过率 23% · 提交 128 · 通过 30
小慕正在设计一款名为“小猫钓鱼”的扑克牌游戏。扑克牌用数字1到13表示(分别对应A、2、3、…、J、Q、K),不考虑花色。游戏开始时,小慕和对手各获得n张牌,按给定顺序排成,这些牌背面朝上、正面朝下放置,队列的第一个元素是背面的第一张牌。 游戏规则如下: 1. 出牌与收牌 - 初始出牌时,小慕先出牌,打出的牌正面朝上放在桌面的最底部,然后对手出牌,正面朝上放在小慕的牌张上面,双方轮流出牌,直到触发收牌或者任意一方牌出完。 - 如果玩家出牌后触发了收牌,则把收到的一摞牌作为整体后,背面朝上、正面朝下放到现有牌的底部,然后当前收牌的玩家继续出牌。 2. 收牌规则 - 若当前打出的牌点数,与桌面上之前某张牌的点数相同,则触发收牌,。 - 若当前打出的牌是J(即点数11),并且此时桌面上已有至少一张牌(不含当前这张),则当前玩家触发收牌,收牌的范围是桌面上的所有牌。若桌面上原本没有牌,则J仅作为普通牌放到桌面上,不触发特殊效果。 3. 游戏结束条件 - 若某位玩家在自己回合开始时已经没有牌可出,则游戏立即结束,如果此时对方还有余牌,则对方获胜,如果对方也无牌,则平局。 - 若在模拟过程中,出牌总次数超过一个上限(10000次)仍未结束,则认为游戏进入死循环,判定为平局。
这类题属于算法机考高频题型中「200分 / 栈」方向的高频题型,通常考察对「200分 / 栈」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
甲的初始牌队列和乙的初始牌队列,甲乙初始手牌数量相等,均为整数n(1≤n≤100)。
一方获胜时,输出获胜方手中背面朝上最上方的那张牌的数值。若平局,如果桌面无牌则输出0,否则输出当前桌面上正面朝上的最上方的那张牌的数值。
示例 1
输入示例
2 1 2 10 12
输出示例
12
示例 2
输入示例
2 1 2 1 2
输出示例
1
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
示例 3
输入示例
4 1 2 11 4 10 12 2 1
输出示例
12
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有