最長公共字首
編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 「」。
示例 1:
輸入: [「flower」,「flow」,「flight」]
輸出: 「fl」
示例 2:
輸入: [「dog」,「racecar」,「car」]
輸出: 「」
解釋: 輸入不存在公共字首。
說明:所有輸入只包含小寫字母 a-z 。
方法1:主要思路是取出所有字串相同索引的字元,進行比對,使用迴圈取出,比較麻煩
class
solution
:def
longestcommonprefix
(self, strs: list[
str])-
>
str:
x =""try
:for i in
range
(len
(strs[0]
)):for j in
range(1
,len
(strs)):
if strs[j -1]
[i]!= strs[j]
[i]:
return x
x += strs[0]
[i]except
:return x
return x
方法2:主要使用了zip(*)函式,可以快速的取到相同索引下的字元
class
solution
:def
longestcommonprefix
(self, strs: list[
str])-
>
str:
newstr =
""for i in
zip(
*strs)
:#zip(*strs) 將列表每個字串的相同索引下的字元拿出,生成乙個元組,只會取出最小字串長度數量
seti =
set(i)
#轉為set型別去重
iflen
(seti)==1
:#去重後字元只剩乙個,就是我們需要的字元
newstr += i[0]
else
:#在任何時候去重後出現多個字元,都退出迴圈
break
return newstr
總結:
使用自己已知的方法獲得結果,同時去了解實現目標更便捷的方法,通過解決這道題,學到了zip()函式的使用。
筆者是一位python小白,望各路大神多多指點
一點點積累,一點點成長
最長公共字首 python
class solution def longestcommonprefix self,strs list str str ifnot strs return strs.sort 這應該是最重要的一步了,給陣列中的各個字串排序,排序之後的第乙個最短,最後乙個最長,所以直接拿第乙個和最後乙個比較就好了...
最長公共字首 python
日期 2020 10 2 標籤 字串編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 1 ...
最長公共字首
描述 給k個字串,求出他們的最長公共字首 lcp 樣例 在 abcd abef 和 acef 中,lcp 為 a 在 abcdefg abcefg abcefa 中,lcp 為 abc 新知識點 vectorstrs既可以是一維的,也可以是多維的。在這裡講解三維的初始化。vector str str...