注意一、使用lstrip()和rstrip()方法可以删除字符串左右两端指定的字符(默认空格)(返回还是字符串),再使用split()方法分割字符串(返回列表)
注意二、使用循环迭代创建列表
n,m = list(map(int,input().split()))
opt_list = []
score_list = [0 for i in range(n)]
err = [0 for i in range(m)]
for i in range(m):
opt = input()
opt_list.append(opt)
for i in range(n):
student = input().rstrip(")").lstrip("(").split(") (")
for j in range(len(student)):
if student[j] == opt_list[j][4:]:
score_list[i] += int(opt_list[j][0])
else:
err[j] += 1
for i in score_list:
print(i)
err_max = max(err)
if err_max == 0:
print("Too simple")
else:
print(err_max,end=' ')
err_count = err.count(err_max)
for i in range(err_count):
max_index = err.index(err_max)
if i != err_count-1:
print(max_index+1,end=' ')
else:
print(max_index+1)
err[max_index] = -1
简化输出,使用查找的方法输出题目编号
n,m = list(map(int,input().split()))
opt_list = []
score_list = [0 for i in range(n)]
err = [0 for i in range(m)]
for i in range(m):
opt = input()
opt_list.append(opt)
for i in range(n):
student = input().rstrip(")").lstrip("(").split(") (")
for j in range(len(student)):
if student[j] == opt_list[j][4:]:
score_list[i] += int(opt_list[j][0])
else:
err[j] += 1
for i in score_list:
print(i)
err_max = max(err)
if err_max == 0:
print("Too simple")
else:
result = str(err_max)
for i in range(m):
if err[i] == err_max:
result += " "+str(i+1)
print(result)
有一个测试点答案错误,没有使用rstrip()和lstrip()方法,没有考虑多选题个数为一的情况,导致分割出现了错误
n,m = list(map(int,input().split()))
opt_list = []
score_list = [0 for i in range(n)]
err = [0 for i in range(m)]
for i in range(m):
opt = input()
opt_list.append(opt)
for i in range(n):
student = input().split(") (")
if student[0][1:] == opt_list[0][4:]:
score_list[i] += int(opt_list[0][0])
else:
err[0] += 1
for j in range(1,len(student)-1):
if student[j] == opt_list[j][4:]:
score_list[i] += int(opt_list[j][0])
else:
err[j] += 1
if student[-1][:-1] == opt_list[-1][4:]:
score_list[i] += int(opt_list[-1][0])
else:
err[-1] += 1
for i in score_list:
print(i)
err_max = max(err)
if err_max == 0:
print("Too simple")
else:
print(err_max,end=' ')
err_count = err.count(err_max)
for i in range(err_count):
max_index = err.index(err_max)
if i != err_count-1:
print(max_index+1,end=' ')
else:
print(max_index+1)
err[max_index] = -1