Python代码
标签输出时没按字典顺序只AC了40%,考完才想起来忘了排序,哭~
在网上看到了其他人的截图,补充一下题目
#输入范例:
# singer_周杰|周杰伦|刘德华|王力宏;song_冰雨|北京欢迎你|七里香;actor_周杰伦|孙俪
# 请播放周杰伦的七里香给我听
# 输出范例:
# 请播放 周杰伦/actor,singer 的 七里香/song 给我听
import sys
def fine_end(word_dict, line, i):
for j in range(i,len(line))[::-1]:
if word_dict.get(line[i:j], [])!=[]:
return j
return -1
if __name__ == '__main__':
# n = raw_input().strip().split(';')
n = 'singer_周杰|周杰伦|刘德华|王力宏;song_冰雨|北京欢迎你|七里香;actor_周杰伦|孙俪'.split(';')
word_dict = {}
put = ''
for i in n:
key = i.split('_')[0]
for j in i.split('_')[1].split('|'):
if word_dict.get(j, []) == []:
word_dict[j] = [key]
else:
word_dict[j].append(key)
#line = raw_input().strip()
line = '请播放周杰伦七里香给我听'
i = 0
print(word_dict)
while i < len(line):
e = fine_end(word_dict, line, i)
if e!=-1:
put += ' ' + line[i:e] + '/' +','.join(sorted(word_dict[line[i:e]])) + ' '#败在这个sorted上了,泪
i = e
else:
put += line[i]
i += 1
put = put.split()
put = ' '.join(put)
sys.stdout.write(put)