性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

zip函數(shù)-求最長(zhǎng)公共前綴

python解決問(wèn)題的方法有很多:函數(shù)法、暴力法以及一些常見(jiàn)的算法等等,而且python 的很多基礎(chǔ)題用函數(shù)來(lái)解決是非常快捷的。熟練掌握函數(shù)的方法和技巧能夠更好地解決問(wèn)題,思路更加清晰。

下面以leetcode”最長(zhǎng)公共前綴”案例簡(jiǎn)單介紹zip函數(shù)的應(yīng)用。編寫(xiě)一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴,返回空字符串 ""

示例:

輸入: ["flower","flow","flight"]

輸出: "fl"

解決方案:

zip()函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的對(duì)象,最后需要轉(zhuǎn)換成list()來(lái)輸出列表。zip(*)可以將元組解壓為列表。

代碼示例:

a = [1,2,3]

b = [4,5,6]

print(list(zip(a,b)))

a1,a2 = zip(*zip(a,b))

print(list(a1))

print(list(a2))

[(1, 4), (2, 5), (3, 6)]

[1, 2, 3]

[4, 5, 6]

要解決最長(zhǎng)的公共前綴,用zip函數(shù)是最簡(jiǎn)單的??梢园演斎氲淖址?dāng)?shù)組看成一個(gè)壓縮包,用zip(*)對(duì)壓縮包進(jìn)行解壓,再判斷解壓出來(lái)的數(shù)組列表是否為重復(fù)元素?cái)?shù)組,如果是則返回前綴。

解題思路:

首先給a賦值一個(gè)空的字符串""若前綴不存在返回空字符串a(chǎn);

用for循環(huán)對(duì)解壓的字符串?dāng)?shù)組進(jìn)行遍歷 ;

set()函數(shù)對(duì)解壓數(shù)組求不重復(fù)數(shù)組;

用if條件判斷不重復(fù)數(shù)組的長(zhǎng)度是否為1;

若為1,則將數(shù)組的元素加到a中;

最后返回a。

代碼示例:

class Solution:

def longestCommonPrefix(self, strs: List[str]) -> str:

a = ""

for i in zip(*strs):

if len(set(i)) == 1:

a = a + i[0]

else:

break

return a

結(jié)語(yǔ):

zip()是可迭代對(duì)象,使用時(shí)必須將其包含在一個(gè)list中,才能輸出結(jié)果。熟練掌握函數(shù)知識(shí),善于用函數(shù)快速求解問(wèn)題。Python的函數(shù)有很多,一個(gè)一個(gè)的去記又很麻煩,所以需要通過(guò)實(shí)際問(wèn)題來(lái)掌握函數(shù)并巧妙的應(yīng)用。

好啦!今天的分享到這里就結(jié)束了,希望大家持續(xù)關(guān)注馬哥教育官網(wǎng)!每天都會(huì)有大量?jī)?yōu)質(zhì)內(nèi)容與大家分享!版權(quán)聲明:轉(zhuǎn)載文章來(lái)自公開(kāi)網(wǎng)絡(luò),版權(quán)歸作者本人所有,推送文章除非無(wú)法確認(rèn),我們都會(huì)注明作者和來(lái)源。如果出處有誤或侵犯到原作者權(quán)益,請(qǐng)與我們聯(lián)系刪除或授權(quán)事宜。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!