上海十大網(wǎng)站建電商網(wǎng)絡(luò)營(yíng)銷(xiāo)
問(wèn)題描述:
主管期望你來(lái)實(shí)現(xiàn)英文輸入法單詞聯(lián)想功能。
需求如下:
依據(jù)用戶(hù)輸入的單詞前綴,從已輸入的英文語(yǔ)句中聯(lián)想出用戶(hù)想輸入的單詞,按字典序輸出聯(lián)想到的單詞序列,如果聯(lián)想不到,請(qǐng)輸出用戶(hù)輸入的單詞前綴。
注意:
- 英文單詞聯(lián)想時(shí),區(qū)分大小寫(xiě)
- 縮略形式如”don’t”,判定為兩個(gè)單詞,”don”和”t”
- 輸出的單詞序列,不能有重復(fù)單詞,且只能是英文單詞,不能有標(biāo)點(diǎn)符號(hào)
輸入描述
輸入為兩行。
首行輸入一段由英文單詞word和標(biāo)點(diǎn)符號(hào)組成的語(yǔ)句str;
接下來(lái)一行為一個(gè)英文單詞前綴pre。
0 < word.length() <= 20
0 < str.length <= 10000
0 < pre <= 20
輸出描述
輸出符合要求的單詞序列或單詞前綴,存在多個(gè)時(shí),單詞之間以單個(gè)空格分割
The furthest distance in the world, Is not between life and death, But when I stand in front of you, Yet you don't know that I love you.
f
front furthest
解題思路:
按照規(guī)則進(jìn)行模擬即可:
- 區(qū)分大小寫(xiě)
- 不能有標(biāo)點(diǎn)符號(hào)包括縮略詞的" ' ":去除標(biāo)點(diǎn)符號(hào),單獨(dú)針對(duì)縮略詞拆分為兩個(gè)單詞
- 不能重復(fù)且字典序:將處理后的單詞加入set()集合 并 轉(zhuǎn)換成列表進(jìn)行排序
- 前綴匹配:單詞的前綴部分 = 前綴
- 無(wú)法聯(lián)想到則輸出前綴
代碼實(shí)現(xiàn):
s = input().split()
target = input()
arr = set()#去重
for i in s:#去標(biāo)點(diǎn)符號(hào)if "'" in i:t = i.index("'")arr.add(i[:t])arr.add(i[t+1:])else:temp = ''for j in i:if 'a' <= j <= 'z' or 'A' <= j <= 'Z':temp += jarr.add(temp)
arr = sorted(list(arr))#字典序排序
n = len(target)
f = True#是否存在
for i in arr:#聯(lián)想if target == i[:len(target)]:print(i,end=' ')f = False
if f:print(target)