14.最長公共前綴

編寫一個函數來查找字符串數組中的最長公共前綴。

如果不存在公共前綴,返回空字符串 ""。

示例 1:

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

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

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

class Solution:
    def longestCommonPrefix(self, strs):
        L = zip(*strs)
        # list(zip(*["abc","efg","jk"])) --例子輸出-→ [('a', 'e', 'j'), ('b', 'f', 'k')] # 加*表示反向zip()

        r = [len(set(c)) == 1 for c in L] + [False]
        # set([1,1,0,1]) --例子輸出-→ [1,0] # set()刪除重複元素

        if strs != []:
            s = r.index(False)  # 查找第一個False的下標
            return strs[0][0:s]  # 列表查找+切片
        else:
            return ''

if __name__ == '__main__':
    solution = Solution()
    print(solution.longestCommonPrefix(["flower","flow","flight"]))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章