题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
#参考:https://blog.nowcoder.net/n/9d679f9f1c234990bf8b88c597bee0dc?f=comment
#看起来就很复杂的样子
#意思是:R和I列两列,如果I列中的元素包含某一个R列中的元素,那么I列的元素就可以输出?
# 无限循环,持续从标准输入读取数据并处理
while True:
try:
# 从标准输入读取一行数据,分割成多个元素,选择索引为1开始的所有元素,赋值给变量 s1_input
s1_input = input().split()[1:]
# 创建一个空列表 s2,用于存储整数数据,列表中元素可以重复
s2 = []
# 从标准输入读取一行数据,分割成多个元素,选择索引为1开始的所有元素,赋值给变量 s2_input
s2_input = input().split()[1:]
# 对 s2_input 中的每个元素进行迭代
for element in s2_input:
# 将元素转换为整数并添加到列表 s2 中
s2.append(int(element))
# 将列表 s2 中的元素去重,然后按升序进行排序
s2 = list(set(s2))
s2.sort()
# 创建一个空列表 rst,用于存储处理后的结果
rst = []
# 对 s2 中的每个整数进行迭代
for num in s2:
# 创建一个空列表 tmp,用于存储与当前整数匹配的子字符串和索引
tmp = []
# 对 s1_input 中的每个子字符串进行迭代
for i, sub in enumerate(s1_input):
# 如果当前整数的字符串形式在子字符串中,将子字符串的索引和内容添加到 tmp 列表中
if str(num) in sub:
tmp.extend([str(i), str(sub)])
# 如果 tmp 不为空,将当前整数、满足条件的子字符串数量以及所有满足条件的子字符串的索引和内容,依次添加到 rst 列表中
if tmp:
rst.extend([str(num), str(len(tmp)//2)] + tmp)
# 将结果列表 rst 的长度以及其中的元素拼接成字符串,并输出到标准输出
print(str(len(rst)) + " " + " ".join(rst))
# 捕获所有异常并中断循环
except:
break
