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

    编写一个函数来查找字符串数组中的最长公共前缀。
    
    如果不存在公共前缀,返回空字符串 ""。
    
    示例 1:
    
    输入: ["flower","flow","flight"]
    输出: "fl"
    示例 2:
    
    输入: ["dog","racecar","car"]
    输出: ""
    解释: 输入不存在公共前缀。
    

    这道题看着很简单,只要将列表前两个元素进行对比,找出他们的公共子串,然后拿他们的公共子串和之后的元素进行对比,由于子串的长度不大,所以只需遍历O(n*k)(最差情况)就可以了。但是题目的数据里有很多坑,容易考虑不到,比如传入列表元素为空,传入列表元素只有一个这些,导致我WA了好几发才过的题,代码如下

    # 已经战胜 42.80 % 的 python 提交记录
    # 输入: ["flower","flow","flight"]
    # 输出: "fl"
    class Solution(object):
        def longestCommonPrefix(self, strs):
            """
            :type strs: List[str]
            :rtype: str
            """
            ans = ""
            strs_lens = len(strs)
            if strs_lens == 0:
                return ""
            if strs_lens == 1:
                return strs[0]
            else:
                for i in range(min(len(strs[0]),len(strs[1]))):
                    if strs[0][i] == strs[1][i]:
                        ans += strs[0][i]
                    else:
                        break
                #到这里就求出了前两位的公共字串
                for i in range(2, strs_lens):
                    if len(strs[i]) == 0:
                        return ""
                    lensx = min(len(ans),len(strs[i]))
                    for j in range(lensx):
                        if strs[i][j] == ans[j]:
                            if lensx < len(ans):
                                ans = ans[:lensx]
                            continue
                        else:
                            ans = ans[:j]
                            break
            if ans == "":
                return ""
            else:
                return ans
    s = Solution()
    ans = s.longestCommonPrefix(["flower","flow","flight"])
    print(ans)
    
  • 相关阅读:
    angular学习地址
    ab压力测试-突破最大线程数
    apache-ab并发负载压力测试 不错
    yum: Cannot find a valid baseurl for repo: migsrv解决方法
    Error: rpmdb open failed
    Web性能压力测试之Webbench使用详解
    几款Web服务器性能压力测试工具
    利用http_load测试Web引擎性能
    gunicorn部署Flask服务
    Python Web 框架:Tornado
  • 原文地址:https://www.cnblogs.com/yfc0818/p/11072640.html
Copyright © 2011-2022 走看看