欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-13 14:29:41
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: ......

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

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

示例 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