【leetcode 简单】第五题 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

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

示例 1:

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

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。

 

class Solution:
    @classmethod
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        if not strs:
            return ''
        new_strs=[i for i in strs if len(i) != 0]

        if new_strs:
            strs_length = len(new_strs)
            if strs_length != len(strs):
                return ''
        else:
            return ''

        if strs_length == 1:
            return strs[0]
        example=strs[0]
        strs.remove(example)

        tmp=1

        while len([i for i in strs if example[:tmp] == i[:tmp]]) == strs_length-1 and tmp <= len(example):
            tmp += 1
        tmp-=1
        return example[:tmp] if example[:tmp] else ''
class Solution:
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        if not strs:
            return ""
        shortest=min(strs,key=len)
        for x, y in enumerate(shortest):
            for s in strs:
                if s[x]!=y:
                    return shortest[:x]
        return shortest
            

 

posted @ 2018-08-07 00:25  丁壮  阅读(419)  评论(0编辑  收藏  举报