AlgoMooc
← 返回题库

P2831. 石头剪刀布游戏

简单通过率 45% · 提交 1,014 · 通过 461
哈希表模拟字符串

小慕正在设计一个石头剪刀布游戏的判定模块。游戏中有 3 种出拳形状:石头、剪刀、布,分别用字母 A、B、C 表示。 游戏规则如下: 1. 出拳形状之间的胜负规则为:A > B;B > C;C > A。其中“>”左边表示相对优势的形状,右边表示相对劣势的形状。 2. 当本场次中有且仅有一种出拳形状优于其他所有出拳形状时,该形状的玩家获胜;否则判定为平局。 3. 如果发生平局,则没有赢家;如果有多个玩家同时满足获胜条件,则他们都算作赢家。 例如 1:三个玩家出拳分别是 A、B、C,由于出现(即没有任何一种形状优于其他所有形状),判定为平局。 例如 2:三个玩家中,出拳分别是 A、B,出拳 A 的玩家获胜。 例如 3:三个玩家全部出拳 A,判定为平局。

提示:带虚线的词点一下有通俗解释。

输入描述

在一场游戏中,每个玩家的信息为一行。玩家数量不超过 1000 。 每个玩家信息有 2 个字段,用空格隔开: 1. 玩家 ID:一个仅由英文字母和数字组成的字符串 2. 出拳形状:以英文大写字母表示, A 、B 、C 形状。 例: abc1 A xyz B 解释: 玩家 abc1 出拳为石头( A )。玩家 xyz 出拳为剪刀( B )

输出描述

输出为赢家的玩家 ID 列表(一个或多个),每个 ID 一行,按字符串升序排列。如果没有赢家,输出为"NULL"字符串。 例如: abc1

示例

示例 1

输入

abc1 A
def A
alic A
xyz B

输出

abc1
alic
def

说明:A 为优胜方,有三个赢家。

示例 2

输入

abc1 A
xyz B

输出

abc1

说明:A 比 B 有优势,abc1 胜出

示例 3

输入

abc1 A
xyz A

输出

NULL

说明:没有优胜的出拳形状,平局

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。