算法面试题3:小猫钓鱼 |
您所在的位置:网站首页 › 扑克牌小猫钓鱼怎么玩儿 › 算法面试题3:小猫钓鱼 |
问题描述: 小哼和小哈在玩一个扑克游戏——小猫钓鱼。游戏规则:将一副扑克牌平均分成两份,每人拿一分。小哼先拿出手中第一张扑克牌放在桌上,然后小哈也拿出手中第一张扑克牌,并放在小哼刚才打出的扑克牌的上面,两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,可将两张相同的牌及其中间所夹的牌全部拿走,并依次放到自己手中牌的末尾。当任意一人手中当牌出完时,游戏结束,对方获胜。 算法问题分析 1、这个游戏一共有两种操作:出牌和赢牌。 出牌即数据结构“队列”的出队,赢牌即数据结构“队列”入队。 2、桌面相当于一个栈,出牌即入栈,赢牌即出栈。 3、通过枚举了解桌面有哪些牌,并找出与手中的牌相同的牌。 问题解题思路 1、定义两个队列q1、q2表示小哼、小哈手中的牌。 2、定义一个栈s表示桌面的牌 3、定义数组book记录桌面上已经出现的牌面 4、游戏开始时q1的队首出队,判断当前时是输牌还是赢牌 4.1如果是输牌,则入栈 4.2如果是赢牌,则q1的队首到队尾,再将赢得的牌依次入队5、q2 的队首出队,操作同4 6、第4、5步重复进行直至任意人手中没有牌 7、输出赢的人手中的牌,输出此时桌面上的牌 代码示例 #include struct queue{ int data[1000]; int head; int hail; }; struct stack{ int data[10]; int top; }; int main(int argc, const |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |