14-->>python3,,编写一个函数来查找字
14-->>python3,,编写一个函数来查找字
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串""。
示例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=sub14 for sub in strs:15 if sub==minsub:16 continue17 for i in range (len(minsub)):18 if sub[i]==minsub[i]:19 i=i+120 elif i==0:21 return ""22 else:23 minsub=minsub[:i]24 break25 return minsub
14-->>python3
评论关闭