zoukankan      html  css  js  c++  java
  • 最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀。

    如果不存在公共前缀,返回空字符串 ""

    示例 1:
    
    输入: ["flower","flow","flight"]
    输出: "fl"
    示例 2:
    
    输入: ["dog","racecar","car"]
    输出: ""
    解释: 输入不存在公共前缀。
    说明:
    
    所有输入只包含小写字母 a-z 

    代码思路:

    相当于在一个二维数组里面横向查找。有点绕。

    在这里有一个很有意思的处理方法,举个例子:s='abcd'  s[2]='c'  s[:2]="ab" 通过这种关系,巧妙地对比了不同地数,同时还输出了同样地数。 

    class Solution(object):
        def longestCommonPrefix(self, strs):
            """
            :type strs: List[str]
            :rtype: str
            """
            if not strs:
                return ""
            if len(strs)==1:
                return strs[0]
            minl=min([len(i) for i in strs])
            endl=0
            while endl < minl:
                for i in range(1,len(strs)):
                    if strs[i][endl]!=strs[i-1][endl]:
                        return strs[0][:endl]
                endl+=1
            return strs[0][:endl]
                                
  • 相关阅读:
    HDNOIP201404最短路径
    BJOI2015 Day3
    BJOI2015 Day2
    BJOI2015 Day1
    BZOJ4012 [HNOI2015]开店
    hdu2159(二维完全背包)
    hdu3496(二维背包)
    hdu3033(变形分组背包)
    hdu1267(递推)
    hdu1503(最长公共子序列)
  • 原文地址:https://www.cnblogs.com/guangluwutu/p/10685722.html
Copyright © 2011-2022 走看看