摘要:字符串?dāng)?shù)組最長(zhǎng)公共前綴給出字符串?dāng)?shù)組,查找這個(gè)數(shù)組中所有字符串的最長(zhǎng)公共前綴思路從開始自增,判斷每個(gè)字符串位置的字符是否一致,不一致則之前的串為最長(zhǎng)公共字符串。利用函數(shù)的特點(diǎn)返回可迭代的對(duì)象,只要判斷長(zhǎng)度大于,則表明此元素非公共字符。
字符串?dāng)?shù)組最長(zhǎng)公共前綴 Longest Common Prefix
給出字符串?dāng)?shù)組,查找這個(gè)數(shù)組中所有字符串的最長(zhǎng)公共前綴
Write a function to find the longest common prefix string amongst an array of strings.
example 1
input: ["asdqowi","asdb", "asdmnc"] output: "asd"思路
i從0開始自增,判斷每個(gè)字符串 i 位置的字符是否一致,不一致則 i 之前的串為最長(zhǎng)公共字符串。
利用python zip函數(shù)的特點(diǎn):
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9, 10] zip(a, b, c) is => (1, 4, 7) (2, 5, 8) (3, 6, 9) set((1, 1, 1)) = {"1"} set((1, 1, 2)) = {"1", "2"}
zip(*strs)返回可迭代的zip對(duì)象,只要判斷set(item)長(zhǎng)度大于0,則表明此元素非公共字符。
下面給出兩種算法的代碼。
代碼class Solution(object): def longestCommonPrefix(self, strs): """ :type strs: List[str] :rtype: str """ prefix = "" i = 0 while True: try: tmp = strs[0][i] for item in strs: if item[i] != tmp: return prefix except: #out of index range,表明遍歷最短字符串完畢 return prefix prefix += tmp i += 1 return prefix def longestCommonPrefix_use_zip(self, strs): """ :type strs: List[str] :rtype: str """ prefix = "" for _, item in enumerate(zip(*strs)): if len(set(item)) > 1: return prefix else: prefix += item[0] return prefix
本題以及其它leetcode題目代碼github地址: github地址
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/38670.html
摘要:最長(zhǎng)公共前綴編寫一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴,返回空字符串。思路先將字符串?dāng)?shù)組排序,在比較第一個(gè)字符串與最后一個(gè)字符串的公共前綴即可,只需比較第一個(gè)字符串與最后一個(gè)字符串保存公共前綴排序不一樣則退出循環(huán) 最長(zhǎng)公共前綴 LCP(longest common prefix) Leetcode: 編寫一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴...
摘要:如果不存在公共前綴,返回空字符串。示例輸入輸出示例輸入輸出解釋輸入不存在公共前綴。 ?作者簡(jiǎn)介:大家好,我是車神哥,府學(xué)路18號(hào)的車神? ?個(gè)人主頁(yè):應(yīng)無(wú)所住...
摘要:最長(zhǎng)公共前綴編寫一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴,返回空字符串。示例輸入輸出示例輸入輸出解釋輸入不存在公共前綴。說(shuō)明所有輸入只包含小寫字母。 LeetCode14.最長(zhǎng)公共前綴 JavaScript 編寫一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴,返回空字符串 。 示例 1: 輸入: [flower,flow,flight] 輸出: fl...
摘要:題目編寫一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴,返回空字符串。示例輸入輸出示例輸入輸出解釋輸入不存在公共前綴。 [TOC] 題目 **編寫一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。** 如果不存在公共前綴,返回空字符串 。 示例 1: 輸入: [flower,flow,flight] 輸出: fl 示例 2: 輸入: [dog,racecar,car] 輸出:...
摘要:公眾號(hào)愛寫編寫一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴,返回空字符串。由于字符串長(zhǎng)度不一,可以先遍歷找出最小長(zhǎng)度字符串,這里我選擇拋錯(cuò)的形式,減少一次遍歷。 公眾號(hào):愛寫bug Write a function to find the longest common prefix string amongst an array of strings. If there...
閱讀 5232·2021-10-15 09:42
閱讀 1617·2021-09-22 16:05
閱讀 3278·2021-09-22 15:57
閱讀 3413·2019-12-27 12:06
閱讀 975·2019-08-29 15:16
閱讀 2887·2019-08-26 12:24
閱讀 390·2019-08-26 12:02
閱讀 1895·2019-08-23 16:00