測試開發工程師的每日演算法-Leecode 演算法題目第 14. 最長公共字首

MmoMartin發表於2020-06-15

題目難易程度: Easy
編寫一個函式來查詢字串陣列中的最長公共字首。

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

示例 1:

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

示例 2:

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

思路:通過題意理解得到:輸入的字串列表中,每個字串都必須有一個共同的字首字串,若字串的同位置上的字元與其他字串上字元不等時,就返回公共字首,否則繼續。
解題程式碼如下,執行效率與儲存空間需要進行優化,以下是按照最常規思路編寫。

class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""

if strs:
strs_min_str = sorted(strs, key=lambda x:len(x))[0]
sum_str = ''
for i in range(len(strs_min_str)):
for y in strs:
if strs_min_str[i] == y[i]:
pass
else:
return sum_str
sum_str += strs_min_str[i]
return sum_str
return ''

相關文章