• LeetCode14. 最长公共前缀


    14. 最长公共前缀

    描述

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

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

    示例

    示例 1:

    输入: ["flower","flow","flight"]
    输出: "fl"
    

    示例 2:

    输入: ["dog","racecar","car"]
    输出: ""
    解释: 输入不存在公共前缀。
    

    说明:

    所有输入只包含小写字母 a-z 。

    思路

    首先考虑特殊情况,即列表中没有字符串或者只有一个字符串。

    列表中最长的相同前缀就是列表中最短的那个字符串的长度。

    从头开始匹配,关键是停止遍历的条件:不再相同,此时就可以直接返回。

    class Solution:
        def longestCommonPrefix(self, strs):
            """
            :type strs: List[str]
            :rtype: str
            """
            # 特殊情况:没有字符串/有一个字符串
            if len(strs) == 0:
                return ""
    
            if len(strs) == 1:
                return strs[0]
    
            len_strs = len(strs)
            # 最大长度为所有字符串中长度最短的那个
            max_len_prefix = min([len(str) for str in strs])
    
            for idx_pre in range(0, max_len_prefix):
                for idx_strs in range(1, len_strs):
                    if strs[0][idx_pre] != strs[idx_strs][idx_pre]:
                        return strs[0][:idx_pre]
    
            # 如果在for中没返回,则最长的前缀长度就为max_len_prefix
            return strs[0][:max_len_prefix]
    
    

    GitHub地址:https://github.com/protea-ban/LeetCode

  • 相关阅读:
    安装黑苹果的config.plist
    navicat for mysql 导出数据的坑
    js中的深层复制
    js写的一个HashMap
    js前台数据校验
    nginx对上传文件大小的限制
    tomcat用户配置,内存配置,pid配置
    redis安装及使用
    程序端口被占用分析
    zookeeper+dubbo-admin开发dubbo应用
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/9662224.html
Copyright © 2020-2023  润新知