标签:longest com mon col flight 记录 临时 class bre
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
分析:这道题要求输出一个字符串的最长公共前缀。公共前缀的长度一定小于等于该数组中最字符串的长度,所以我们需要找到数组中长度最短的字符串当作参照物去寻找前缀。可以将数组的第一个单词作为临时参照(minsub),遍历数组,遇到比它长度更小的,就更新 minsub 的值。接下来,我们就可以根据minsub匹配数组中每一个单词,看是否存在公共前缀:接着进行遍历,当遇到和minsub不同的字符串时,用循环匹配这两个字符串中是否存在相同字符(好像不是很清楚...配合看代码就好理解了),如果存在,就记录相同字符结束的下标;如果不存在,就进行下一个字符串的匹配。
1 class Solution: 2 def longestCommonPrefix(self, strs): 3 """ 4 :type strs: List[str] 5 :rtype: str 6 """ 7 if not strs: 8 return "" 9 else : 10 minsub=strs[0] 11 for sub in strs: 12 if len(sub)<len(minsub): 13 minsub=sub 14 for sub in strs: 15 if sub==minsub: 16 continue 17 for i in range (len(minsub)): 18 if sub[i]==minsub[i]: 19 i=i+1 20 elif i==0: 21 return "" 22 else: 23 minsub=minsub[:i] 24 break 25 return minsub
标签:longest com mon col flight 记录 临时 class bre
原文地址:https://www.cnblogs.com/baiqingm/p/9281362.html