編寫乙個函式來查詢字串陣列中的最長公共字首。以最短字串為界,逐次將前n個元素放入到乙個公共列表中,然後利用集合確認公共列表中是否僅有一種元素,否則就返回上一次存入的字串。如果不存在公共字首,返回空字串 「」。
示例 1:
輸入: [「flower」,「flow」,「flight」] 輸出: 「fl」 示例 2:
輸入: [「dog」,「racecar」,「car」] 輸出: 「」 解釋: 輸入不存在公共字首。 說明:
所有輸入只包含小寫字母 a-z 。
# -*- 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 ...