查找字符串?dāng)?shù)組最長公共前綴
1)
思路:可以先找到前兩個字符的公共前綴,再跟第三個進(jìn)行對比,這樣遍歷完整個數(shù)組
兩個字符串間,用下標(biāo)去對比,先對比第一個位置,相同在比較下一個,直到不同
返回切片到這個位置的數(shù)據(jù)即可
一,首先,兩個字符串進(jìn)行對比(內(nèi)部小循環(huán))
Def lcp(str1,str2):
?? Min_len = min(len(str1), len(str2))
?? For ?index ?in ?range(0,Min_len):
? ???If str1[index]== str2[index]:
?? ????Index += 1
?? Return str1[,index]
二,外部大循環(huán),排除特殊情況
if?not?strs:
???return?''#如果字符串為空,直接返回空
三,外部大循環(huán),兩個字符串對比的結(jié)果繼續(xù)與下一個字符對比
?
Prefix=strs[0]
For ?i ?in ?range(1,len(strs)):
? ??Prefix = ?lcp(Prefix ,str[i])
If not prefix:
Break
Return Prefix
2)系統(tǒng)中有現(xiàn)成的接口是現(xiàn)實這個功能
os.path.commonprefix(
list
)
返回list中,所有元素共有的最長的前綴
標(biāo)簽: