题解 | #数据分类处理#
数据分类处理
http://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
这可能是华为机试题描述最垃圾的一个了。。。坑太多
while True:
try:
I = [x for x in input().split()[1:]]
R = sorted([int(x) for x in set(input().split()[1:]) if x > '0']) # R的序列要求是去除首位,且后续数字大于0,且要按照数字排序
R = [str(x) for x in R] # 需要R数组从int转换为str,才方便进行比较
result = []
for r_index in range(len(R)):
tmp_list = []
for i_index in range(len(I)):
if R[r_index] in I[i_index] and I[i_index] not in tmp_list:#当R元素字符串包含在I元素且tmp_list中没有该字符串时,加入到临时字符串,不然就会出现重复的I元素和其索引
tmp_list.append(i_index)
tmp_list.append(I[i_index])
tmp_list.insert(0, len(tmp_list)//2) # 因为index+value到时数组长度乘2了,这个地方需要除2
tmp_list.insert(0, R[r_index])
if len(tmp_list) > 2:
result += tmp_list
tmp_list.clear()
result.insert(0, len(result))
for num in result:
print(num,end=' ')
print()
except EOFError:
break