[2021-09-13][简单][NC55]最长公共前缀

题目来源牛客网

描述
给你一个长度为 n 的字符串数组 strs , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。

例如

输入:["abca","abc","abca","abc","abcc"]
返回值:"abc"

解题思路:
1、先解决特殊情况:
当列表长度为0时,直接返回空
当列表长度为1时,直接返回列表内唯一元素
2、找出最短元素的长度(如果最短元素长度为0则直接返回空字符串)
3、从下标0开始,遍历每一个列表元素对应下标的值,如果相等,则记录该值,下标+1继续遍历。
4、遍历结束返回记录内容

class Solution:
    def longestCommonPrefix(self , strs ):
        sl = len(strs)
        if sl == 0: return ""    # 列表长度为0直接返回空字符串
        if sl == 1: return strs[0]    # 列表长度为1返回唯一元素
        
        lmins = min([len(s) for s in strs])    # 找出最短元素的长度
        if lmins == 0: return ""    # 列表最短元素长度为0直接返回空字符串
        
        result = ""
        for i in range(lmins):
            flag = strs[0][i]   # 循环遍历任意元素的每一个长度在最短长度内的值
            if all([s[i] == flag for s in strs]):   # 列表存放的是每一次判断的布偶值,用一个all函数可以进行筛选,只要列表中有false则返回flase。                
                result = result + flag  # 输出字符串后追加该值
        return result

你可能感兴趣的:([2021-09-13][简单][NC55]最长公共前缀)