在5月4日之后挑战星际迷航参考可能会让人皱眉,但这是可行的。
您,卢克(Luke),阿纳金(Anakin),帕尔帕廷(Palpatine),尤达(Hoda Solo)和汉·索罗(Han Solo)参与了摇滚,造纸,剪刀,蜥蜴,史波克的疯狂比赛。
这里的要点是只允许您使用固定顺序的移动。如果您的订单为“ R”,则您必须使用Rock,直到您输给所有人或输给每个人。如果您的订单是RRV,那么您必须使用2个Rocks和一个Spock,并不断重复直到您赢了或输了。
卢克(Luke),阿纳金(Anakin),帕尔帕廷(Palpatine),尤达(Yoda)和汉·索罗(Han Solo)分别提交了他们的订单,而作为专家级的黑客,您将掌握他们的每份订单!
有了这些知识,您就可以设计锦标赛的订购。因为每个人都想赢,所以您想创建一个订单,以便击败每个人来赢得比赛。但这并非在所有情况下都可行。
如果有可能的中奖订单,请打印出来。如果您无法取胜,请打印-1(或0或False或“不可能”)
输入:5个订单清单
输出:单个订单或-1
样本输入1
R
P
S
L
V
样本输出1
-1
说明1
无论您采取什么第一步,都将至少有一个人击败您,因此您不可能获胜。
样本输入2
RPS
RPP
R
SRR
L
样本输出2
RPSP
说明2
在第一步中打出Rock之后,您最终击败了“ L”和“ SRR”,并与其余的并列。这是因为蜥蜴和剪刀输给了Rock。当您接下来玩Paper时,您将击败“ R”并与其余的2并列。这是因为Rock输给了Paper。当您接下来玩剪刀时,当剪刀击败Paper时,您将赢得“ RPP”的胜利。
最后,您将在Paper击败Rock时用Paper击败“ RPS”。
以下是符号列表(您可以使用任意5个文字,但请在您的答案中指定):
R : Rock
P : Paper
S : Scissor
L : Lizard
V : Spock
以下是所有可能结果的列表:
winner('S', 'P') -> 'S'
winner('S', 'R') -> 'R'
winner('S', 'V') -> 'V'
winner('S', 'L') -> 'S'
winner('S', 'S') -> Tie
winner('P', 'R') -> 'P'
winner('P', 'V') -> 'P'
winner('P', 'L') -> 'L'
winner('P', 'S') -> 'S'
winner('P', 'P') -> Tie
winner('R', 'V') -> 'V'
winner('R', 'L') -> 'R'
winner('R', 'S') -> 'R'
winner('R', 'P') -> 'P'
winner('R', 'R') -> Tie
winner('L', 'R') -> 'R'
winner('L', 'V') -> 'L'
winner('L', 'S') -> 'S'
winner('L', 'P') -> 'L'
winner('L', 'L') -> Tie
winner('V', 'R') -> 'V'
winner('V', 'L') -> 'L'
winner('V', 'S') -> 'V'
winner('V', 'P') -> 'P'
winner('V', 'V') -> Tie
这是代码高尔夫球,因此最少的字节获胜。
PS:让我知道您是否需要更多测试用例。