ali演算法筆試程式設計題

2021-08-27 11:46:17 字數 1669 閱讀 2137

2023年9月7號

思路:首先進行資料的預處理部分,將歌手、歌曲、演員分別分離出來儲存到列表aalist裡面。再進行一次排序,排序可以保證先匹配「周杰倫」,當不能匹配時再去匹配「周杰」,如此可以將二者分開。之後便可以進行字串匹配,並做插入字元操作。

輸入為:

輸出為:

**如下:

a = raw_input()

b = raw_input()

#a = "singer_周杰|周杰倫|劉德華|王力巨集;song_冰雨|北京歡迎你|七里香;actor_周杰倫|孫儷"

alist =

i = 0

j = 0

while i < len(a):#將歌手、歌曲、演員分別分離出來儲存到alist裡面。

if a[i] == ';':

j = i+1

i = i + 1

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] == '|':

j = i + 1

i = i + 1

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

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#while增益

print(b)

筆試 程式設計題

1.class a class b public a int main 2.int main 3.int func int a int main little endian int main char p char a 2 printf 0x x,0x x,0x x p 1 p,short p re...

騰訊筆試程式設計題

題目需求 對於乙個十進位制的正整數,定義f n 為其各位數字的平方和,如 f 13 1 2 3 2 10 f 207 2 2 0 2 7 2 53 下面給出三個正整數k,a,b,你需要計算有多少個正整數n滿足a n b,且k f n n 輸入 第一行包含3個正整數k,a,b,k 1,a,b 10 1...

浪潮筆試程式設計題

有乙個長度為n的01串。現在要找出這個串的最長的01交替子串行 不需要是連續的 比如,和 都是01交替序列,但是 和 不是。可以對該串的某一段連續的字元進行反轉。即把某一段中的,問經過修改之後最大長度的01交替子串行是多少?include include include include using ...