最长公共前缀(Python)
发布时间:2020-12-20 10:43:47 所属栏目:Python 来源:网络整理
导读:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串?""。 示例?1: 输入: ["flower","flow","flight"] 输出: "fl" 示例?2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串?""。 示例?1: 输入: ["flower","flow","flight"] 输入: ["dog","racecar","car"] 所有输入只包含小写字母?a-z?。 来源:力扣(LeetCode) 当出现比第一个字符长度还小且匹配的字符串就会报错,于是把列表长度最小的当判断点。 class Solution: def longestCommonPrefix(self,strs): if len(strs) == 1: # 字符串数组只有一个时返回它本身。 return strs[0] if len(strs) == "" or strs == []: return "" a = len(strs) n = a-1 while n >= 0: # 从大到小排序 if len(strs[n]) < len(strs[n-1]): s = strs[n] strs[n] = strs[n-1] strs[n-1] = s n -= 1 b = len(strs[len(strs)-1]) # 获得长度最小的字符串长度,并保证字符串数组最后一个为最短 j = 0 p = 0 if b <= 0: # 当最小的长度等于0,那么便没有公共前缀。 return "" while True: while strs[0][j] != strs[p+1][j]: if strs[0][:j] == None : return "" else: return strs[0][:j] p += 1 if p >= a-1: j += 1 p = 0 if j == len(strs[p-1]): # 当j等于最短的字符串长度直接返回 return strs[0][:j] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |