【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
            

原文地址:https://www.cnblogs.com/flashBoxer/p/9434372.html

时间: 2024-07-29 18:54:08

【leetcode 简单】第五题 最长公共前缀的相关文章

LeetCode刷题-最长公共前缀(简单)

题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"]输出: "fl" 示例 2: 输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀. 说明: 所有输入只包含小写字母 

LeetCode第14题 最长公共前缀

/* 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". ["flower","flow","flight"] */ 思路1:时间复杂度为O(n*m),遍历数组 ,相同元素放入Stringbuilder中. 1 class Solution14 { 2 3 public String longestCommonPrefix(String[] strs) { 4 if (strs.lengt

【简单算法】20.最长公共前缀

题目: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀. 说明: 所有输入只包含小写字

算法题---最长公共前缀

题目来源:https://leetcode-cn.com/problems/longest-common-prefix/ 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"]输出: "fl"示例 2: 输入: ["dog","racecar","ca

[LeetCode]32. Longest Common Prefix最长公共前缀

Write a function to find the longest common prefix string amongst an array of strings. 解法:从所有的string的头到尾的字母逐一比较即可. class Solution { public: string longestCommonPrefix(vector<string>& strs) { int n = strs.size(), i = 0; bool flag = false; if (n =

【leetcode算法-简单】14. 最长公共前缀

[题目描述] 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"]输出: "fl" 示例 2: 输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀.说明: 所有输入只包含小写字母

leetcode——Longest Common Prefix 最长公共前缀(AC)

Write a function to find the longest common prefix string amongst an array of strings. 其实做起来会感觉很简单,需要注意的是要考虑效率的问题,毕竟可能是很长的字符串数组,所以可以考虑选取所有字符串中最短的那个来首先进行比较,因为最长公共子串肯定不会大于其长度,这样避免了字符串之间长度差异很大造成的效率损失,然后每次比较之后最长公共子串的长度也永远不会大于最短的那个字符串,只会不变或减小,只要遍历字符串数组,挨个

经典算法题每日演练——第四题 最长公共子序列

原文:经典算法题每日演练--第四题 最长公共子序列 一: 作用 最长公共子序列的问题常用于解决字符串的相似度,是一个非常实用的算法,作为码农,此算法是我们的必备基本功. 二:概念 举个例子,cnblogs这个字符串中子序列有多少个呢?很显然有27个,比如其中的cb,cgs等等都是其子序列,我们可以看出 子序列不见得一定是连续的,连续的那是子串. 我想大家已经了解了子序列的概念,那现在可以延伸到两个字符串了,那么大家能够看出:cnblogs和belong的公共子序列吗? 在你找出的公共子序列中,你

# Leetcode 14:Longest Common Prefix 最长公共前缀

公众号:爱写bug Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string "". 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". Example 1: Input: ["flower"