DMOJ COCI '08 Contest 1 #2 代码单测试点未通过问题求助
你的代码存在一处拼写错误,是导致测试用例不通过的核心原因:
当Adrian和Goran分数相同且高于Bruno的分支中,你将Adrian误拼写为Andrian,判题系统无法匹配错误的人名,会直接判定该类场景的用例不通过。
原错误代码片段:
elif score_adrian == score_goran and score_adrian > score_bruno: output = str(score_goran) + '\nAndrian\nGoran'
修正后代码片段:
elif score_adrian == score_goran and score_adrian > score_bruno: output = str(score_goran) + '\nAdrian\nGoran'
你也可以优化分支判断逻辑,避免手写大量分支容易出现的拼写错误,参考优化代码:
n = int(input()) ans = input() # 按题目要求顺序存储人名和对应的答题模式 people = [ ("Adrian", "ABC"), ("Bruno", "BABC"), ("Goran", "CCAABB") ] scores = [] for name, pattern in people: score = 0 pattern_len = len(pattern) for i in range(n): if ans[i] == pattern[i % pattern_len]: score += 1 scores.append((score, name)) # 取最高分数 max_score = max(s for s, name in scores) print(max_score) # 按顺序输出所有得最高分的人 for s, name in scores: if s == max_score: print(name)
内容的提问来源于stack exchange,提问作者ammiko
相关产品推荐
相关产品推荐

