LeetCode——python3最長公共字首——2020.11.24

Blockchain_Key發表於2020-11-24

一丶題目程式碼

#專案名稱:
#專案簡介:
#作   者:key
#開發時間:2020/11/24 23:15

"""
14. 最長公共字首
編寫一個函式來查詢字串陣列中的最長公共字首。

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

示例 1:

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

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

所有輸入只包含小寫字母 a-z 。
"""

def longestCommonPrefix(strs):
    if not strs: return ""
    # 因為是所有的子串的公共,所以只需要看最大最小的字串就行了
    s1 = min(strs)
    s2 = max(strs)
    # 獲得最小字串的索引值和值
    for index, num in enumerate(s1):
        # 讓最小字串的值從第0位向右遞增,直到遍歷所有的字母
        # 如果遇到當前最小子串的當前字母與當前最大子串的字母不相同了
        # 那麼上一位字母到0位字母 就是此字串組,最大公共子串
        if num != s2[index]:
            # 切片返回就行了
            return s2[:index]
    # 此返回介面說明到min的最後一位,與max都是相同的,那麼直接返回s1
    return s1

def main():
    strs = input().split(',')
    print(longestCommonPrefix(strs))


if __name__ == "__main__":
    main()

二丶執行結果

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

三丶LeetCode提交程式碼

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs: return ""
        s1 = min(strs)
        s2 = max(strs)
        for index,num in enumerate(s1):
            if num != s2[index]:
                return s2[:index]
        return s1

四丶執行程式碼

在這裡插入圖片描述

——雄關漫道真如鐵,而今邁步從頭越——

相關文章