题目来源牛客网
描述
给你一个长度为 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
网友评论