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 ...