python實現最長公共字首

2021-10-13 19:13:41 字數 1576 閱讀 1559

編寫乙個函式來查詢字串陣列中的最長公共字首。

如果不存在公共字首,返回空字串 「」。

示例 1:

輸入: [「flower」,「flow」,「flight」] 輸出: 「fl」 示例 2:

輸入: [「dog」,「racecar」,「car」] 輸出: 「」 解釋: 輸入不存在公共字首。 說明:

所有輸入只包含小寫字母 a-z 。

以最短字串為界,逐次將前n個元素放入到乙個公共列表中,然後利用集合確認公共列表中是否僅有一種元素,否則就返回上一次存入的字串。

# -*- coding: utf-8 -*-

'''題目簡述:

查詢字串中最長公共字首。如果不存在,就返回空字串''。

基本思路:

以最短元素長度為界,將全部元素前n個字元放到乙個列表中,然後利用python的集合

檢視新列表中是否只有一種字串。若是,則繼續比較下乙個n+1元素,否則返回前乙個存入的字串。

'''class

solution()

:def

longcommonprefix

(self,ilist):if

len(ilist)==0

or''

in ilist:

# 若ilist為0或者其中存在空字串

return

''if

len(ilist)==1

:# 若ilist中僅有乙個元素

return ilist[0]

minlength =

min(

[len

(word)

for word in ilist]

)# 最短字元的長度

publicwordlist =

# 乙個公共字串

# 開始迴圈

for i in

range(0

,minlength)

:for word in ilist:

:i+1])

# 取出第乙個字母

iflen

(set

(publicwordlist))==

1:# 若僅有乙個元素

publicwordlist=

else

:# 若不等1,則返回上乙個索引

return ilist[0]

[:i]

return ilist[0]

[:minlength]

# 若都沒毛病,則返回最小長度

if __name__ ==

'__main__'

: ilist =

['abb'

,'abc'

] solu = solution(

) res = solu.longcommonprefix(ilist)

print

('公共字串為\n'

,res)

a.minlength = min([len(word) for word in ilist])這種寫法需要掌握。

最長公共字首 python

class solution def longestcommonprefix self,strs list str str ifnot strs return strs.sort 這應該是最重要的一步了,給陣列中的各個字串排序,排序之後的第乙個最短,最後乙個最長,所以直接拿第乙個和最後乙個比較就好了...

Python 最長公共字首

最長公共字首 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 方法1 主要思路是取出所有...

最長公共字首 python

日期 2020 10 2 標籤 字串編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 1 ...