我在 CodeJam 期间在 Python3 中提交了以下解决方案。然而,它返回 WrongAnswer 错误。
看了官方的分析,发现思路确实符合。我想知道我错过了哪个测试用例/场景!
链接到 Google CodeJam:https ://codingcompetitions.withgoogle.com/codejam/round/00000000000516b9
def result(k, x):
print("Case #{}: {}".format(k, x))
def select_move(r_set):
if "P" in r_set and "S" in r_set:
return "S"
if "S" in r_set and "R" in r_set:
return "R"
if "R" in r_set and "P" in r_set:
return "P"
if "P" in r_set:
return "S"
if "S" in r_set:
return "R"
if "R" in r_set:
return "P"
def __main__():
t = int(input())
for k in range(1, t + 1):
a = int(input())
opponents = [input().strip() for s in range(0, a)]
move = list()
broke = False
max_len = 500
for i in range(0, max_len):
if broke:
break
r_set = set(map(lambda x: x[i % len(x)], opponents))
if len(r_set) == 3:
broke = True
break
elif len(r_set) == 1:
# win
move.append(select_move(r_set))
break
else:
if i == max_len - 1:
broke = True
break
move.append(select_move(r_set))
if broke:
result(k, "IMPOSSIBLE")
else:
result(k, "".join(move))
__main__()
非常感谢!!!