1. 程式人生 > >LeetCode14-最長公共字首

LeetCode14-最長公共字首

突然之間,覺得自己放鬆了不少,當一件事情想清楚之後,總會有一種如釋重負的感覺,很喜歡。就讓這種久違的輕鬆感多持續一段時間吧!


14-最長公共字首

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

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

示例 1:

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

示例 2:

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

說明:

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

這一題我是將字串陣列中的每個字串逐一比較的,即每次拿第一個字串的第一個字元依次與後面字串的相應位置的字元比較,一旦出現不匹配,立馬退出。這個方法很容易想到,執行效率也還算不錯的啦,值得推薦!

程式碼如下:

class Solution:
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        common_list = []
        if len(strs) == 0:
            return ''.join(common_list)
        for ans in range(len(strs)):
            if not strs[ans].islower():
                return ''.join(common_list)
        min_length = min([len(index) for index in strs])
        Finish = False
        for index in range(min_length):
            common = strs[0][index]
            for ans in range(1, len(strs)):
                if common != strs[ans][index]:
                    Finish = True
                    break
            if Finish:
                break
            common_list.extend(common)
        return ''.join(common_list)


if __name__ == '__main__':
    strs = []
    result = Solution().longestCommonPrefix(strs)
    print(result)

執行效率如下: