今天阿里笔试凉凉, 第一题求交流
今天阿里笔试凉凉, 第一题求交流。虽然时间结束之后才写完写完,不知道能不能AC,求各位大佬指教。
用的方法比较暴力,可以把给的例子跑出结果来。
不知道还有什么不妥,请各位巨佬,大佬们指教。
import sys
def form_dict(info_lst):
result_dict = {}
for info in info_lst:
if info[0] not in result_dict:
result_dict[info[0]] = [info]
else:
result_dict[info[0]].append(info)
return result_dict
info = sys.stdin.readline().strip().split(';')
info_dict = {}
for item in info:
name, content = item.split('_')
info_dict[name] = content.split('|')
keys = info_dict.keys()
for key in keys:
info_dict[key] = form_dict(info_dict[key])
order = sys.stdin.readline().strip()
string = order
order = list(order)
result = []
i = 0
while i < len(order):
for key in keys:
if order[i] not in info_dict[key]:
pass
else:
length = 0
res = ''
for name in info_dict[key][order[i]]:
if ''.join(order[i: i + len(name)]) == name and len(name) > length:
res, length = name,len(name)
if length > 0:
result.append([i, i + length, key])
i += 1
entity = []
status = []
for item in result:
name = ''.join(order[item[0]: item[1]])
if name not in entity:
entity.append(name)
index = entity.index(name)
else:
index = entity.index(name)
if len(status) > index:
status[index] += ';' + item[2]
else:
status.append(item[2])
for i in range(len(entity)):
string = string.replace(entity[i], ' {}/{} '.format(entity[i], status[i]))
print(string)
代码运行的结果如下图: