题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
import sys
from collections import OrderedDict
Iline = sys.stdin.readline().split()
numI, I = Iline[0], Iline[1:]
Rline = sys.stdin.readline().split()
numR, R = Rline[0], Rline[1:]
R = map(str,sorted(map(int,set(R))))
dic = OrderedDict()
for Ri in R:
for j, num in enumerate(I):
if Ri in num:
if Ri not in dic:
dic[Ri] = [[j, num]]
elif Ri in dic:
dic[Ri].append([j, num])
ans = ''
count = 0
result = []
for key, value in dic.items():
ans += key
ans += ' '+ str(len(dic[key]))
result.append(key)
result.append(len(dic[key]))
count += 2
for item in dic[key]:
ans += ' ' + str(item[0])
ans += ' ' + str(item[1])
count += 2
result.append(item[0])
result.append(item[1])
result = [count] + result
print(' '.join(str(x) for x in result))
- 注意要先将R转变为set去重,用一次map将里面的元素转换为数字排序后,再转换为str来判断字符串的包含关系。
- 需要用OrderedDict,而不是dict, 这样能让字典按照R插入的顺序来排序。
- 注意输出处理,我先用字符串相加的方式,但显示输出格式错误(即使内容是对的),后来将元素添加到list中,最后用‘ ’连接起来才符合。
CVTE公司福利 672人发布