ali算法笔试编程题

2018年9月7号

a = raw_input()

b = raw_input()

#a = "singer_周杰|周杰伦|刘德华|王力宏;song_冰雨|北京欢迎你|七里香;actor_周杰伦|孙俪"
#b = "请播放周杰伦的七里香给我听"

alist = []
i = 0
j = 0
while i  < len(a):
    if a[i] == ';':
        alist.append(a[j:i])
        j = i+1
    i = i + 1
alist.append(a[j:])
alist[0] = alist[0].replace('singer_','')
alist[1] = alist[1].replace('song_','')
alist[2] = alist[2].replace('actor_','')
#print(alist)

aalist=[]
for c in alist:
    #print(c)
    ssa = []
    i = j = 0
    while i < len(c):
        if c[i] == '|':
            ssa.append(c[j:i])
            j = i + 1
        i = i + 1
    ssa.append(c[j:])
    aalist.append(ssa)
print(aalist)
#myList1 = sorted(myList,key = lambda i:len(i),reverse=True)
aalist[0] = sorted(aalist[0],key=lambda i:len(i),reverse=True)
#print(aalist)
i = 0
#count = 0
while i <len(b):

    count = 0
    for j in aalist[0]:
        #print(j)

        if b[i] == j[0]:
            #print('b[i]'+b[i])


            if b[i:i+len(j)] == j:
                 if j in aalist[2]:
                    b = b.replace(j, ' ' +j + '/acter,singer ')
                    i = i + len(j)
                 else:
                    b = b.replace(j,' ' +j+'/singer ')
                    i = i + len(j) - 1

    for j in aalist[1]:
        if b[i] == j[0]:
            if b[i:i+len(j)] == j:
                b = b.replace(j,' ' +j+'/song ')
                i = i + len(j)-1
    i = i+1

print(b)

输出为:

请播放 周杰伦/acter,singer 的 七里香/song 给我听

猜你喜欢

转载自blog.csdn.net/u011537121/article/details/82502600
今日推荐