从后往前看自己做的题真觉得自己愚蠢
代码如下:
s = input()
n = int(input())
s_list = []
i = 0
max_k = 0
while i < n:
ans = input()
k = 0
if len(ans) != len(s):
k = 0
else:
j = 0
while j < len(s):
if s[j] == ans[j]:
k += 1
j += 1
max_k = max(max_k, k)
s_list.append([ans, k])
i += 1
ans_list = []
for row in s_list:
if row[1] == max_k:
ans_list.append(row[0])
ans_list.sort()
for ans in ans_list:
print(ans)
s_list 是二维列表,用于存放 ans 与其对应的 k
k 的定义是 sum / b,当 k 不为零时长度永远正确,只需存放与 s 对应位置字母相同个数即可
max_k用于存放最大的 k
边输入边处理巴拉巴拉巴拉
ans_list 用于存放 k 值最大的字符串
ans 全部输入后,遍历 s_list 寻找 k 最大的字符串并存入 ans_list
然后对 ans_list 进行排序,确保字典序(Python永远滴神)
最后输出