列表

详情


NC238567. Missing

描述

空。
对于中学生来说,报听写是一件很常见的事情。

牛妹作为「听写组长」,他知道正确的单词为 s

牛妹收到了 n 本来自同学的听写,每个同学的答案是 ans_i,他会在这 n 个答案中,选取一个或多个与 s 相似度最高的,判对,关于「相似度」的说明,请见「输出格式」部分。

输入描述

第一行一个字符串 s,表示正确答案。

第二行一个正整数 ,表示提交答案的学生人数。

接下来 n 行,每行一个字符串 ans_i,表示第 i 个学生的答案。

因为牛妹是中学生,单词不会太长,所以 ,其中 分别表示 sans_i 的长度。

本题保证所有出现的字符串由英文小写字母  构成

输出描述

若干个字符串。

按字典序输出「相似度」最高的单词。

关于「相似度」的定义:
设相似度
若一个字符串 bs 长度不同,
若一个字符串 bs 长度相同,,其中 sum 表示字符串 b 和字符串 s 对应位置字母相同的个数 表示 b 的长度。

需要注意的是,如果「相似度」都为 0,请仍然按字典序输出所有字符串。

示例1

输入:

bee
4
beeee
eee
bbb
beb

输出:

beb
eee

说明:

第一个字符串 k = 0,第二个字符串 k = \dfrac{2}{3},第三个字符串 k = \dfrac{1}{3},第四个字符串 k = \dfrac{2}{3},所以按字典序输出第二个和第四个,故输出为 \tt beb\tt eee

示例2

输入:

kawaii
5
kwi
kawqwq
kawai
orange
mising

输出:

kawqwq

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3 解法, 执行用时: 43ms, 内存消耗: 4716K, 提交时间: 2023-08-13 13:51:34

s = input()
n = int(input())
b = []
for i in range(n):
    m = 0
    t = input()
    if len(s) == len(t):
        for j in range(len(s)):
            if s[j] == t[j]:
                m += 1
    b.append([m,t])

b.sort(key = lambda k:(-k[0],k[1]))

for i in b:
    if i[0] == b[0][0]:
        print(i[1])

上一题