首页 > 试题广场 >

最长公共前缀

[编程题]最长公共前缀
  • 热度指数:159173 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。

数据范围:
进阶:空间复杂度 O(1),时间复杂度 O(n*len)
示例1

输入

["abca","abc","abca","abc","abcc"]

输出

"abc"
示例2

输入

["abc"]

输出

"abc"
#

# @param strs string字符串一维数组 
# @return string字符串
#
class Solution:
    def same_two(self,a,b):
        l=''
        short_=min(len(a),len(b))
        for i in range(short_):
            if a[i]==b[i]:
                l+=a[i]
            else:
                break
        return l
        
        
    def longestCommonPrefix(self , strs ):
        # writ code here
        if len(strs)==0:
            return ''
        if len(strs)==1:
            return strs[0]
        l=strs[0]
        for i in range(1,len(strs)):
            l=self.same_two(l, strs[i])
        return l
            
发表于 2022-04-07 23:27:43 回复(0)
class Solution:
    def longestCommonPrefix(self , strs ):
        # write code here
        if strs == []:
            return ""
        shortest = min(strs, key=len)
        while True:
            flag = 0
            for i in strs:
                if shortest not in i:
                    shortest = shortest[:-1]
                    flag = 1
                    break
            if flag == 0:
                return shortest
发表于 2021-04-16 19:50:41 回复(0)
#

# @param strs string字符串一维数组 
# @return string字符串
#
class Solution:
    def longestCommonPrefix(self , strs):
        res = ""
        if not strs:
            return res
        print(strs)
        strs.sort(key = len)
        print(strs)
        first,last = strs[0],strs[-1]
        for x,y in zip(first,last):
            if x == y:
                res += x
            else:
                return res
        return res#

# @param strs string字符串一维数组 
# @return string字符串
#
class Solution:
    def longestCommonPrefix(self , strs):
        res = ""
        if not strs:
            return res
        print(strs)
        strs.sort(key = len)
        print(strs)
        first,last = strs[0],strs[-1]
        for x,y in zip(first,last):
            if x == y:
                res += x
            else:
                return res
        return res
发表于 2021-01-12 22:16:47 回复(3)
class Solution:
    def longestCommonPrefix(self , strs):
        res = ""
        if not strs:
            return res
        strs.sort(key = len)
        first,last = strs[0],strs[-1]
        for x,y in zip(first,last):
            if x == y:
                res += x
            else:
                return res
        return res

发表于 2020-09-27 11:13:23 回复(2)
# @param strs string字符串一维数组 
# @return string字符串
class Solution:
    def longestCommonPrefix(self , strs ):
        # write code here
        n = len(strs)
        if n == 0:
            return ""
        
        strs.sort()
        m = min(len(strs[0]),len(strs[n-1]))
        for i in range(m):
            if strs[0][i] != strs[n-1][i]:
                return strs[0][0:i]
        return strs[0][0:m]


编辑于 2020-06-16 10:59:42 回复(1)