【题目描述】

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

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

示例 1:

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

示例 2:

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

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

解答

  • 解法一:一开始先假设最长公共前缀 result = strs[0],然后依次与列表里其他的字符串比较,不断更新 result 的值,直到 result = '' 或者遍历完列表里的全部字符串

  

def longestCommonPrefix(strs):
if not strs : return '' #如果strs为空
if len(strs) == 1: return strs[0] #如果strs中只有一个字符串
if '' in strs: return '' #如果strs里存在 '' result = strs[0] #用resul表示当前求得的最长公共前缀
strslen = len(strs)
i = 1 while result and i < strslen:
m = len(result)
n = len(strs[i])
minlen = min(m,n)
result = result[:minlen] #result长度一定小于或等于当前字符串 for j in range(minlen):
if result[j] != strs[i][j]:
result = result[:j]
break
i += 1
return result

  执行用时:46ms

  • 解法二:利用python列表的排序功能

  python中如果全是由字符串组成的列表,对其进行排序,会按照a-z进行排序(就像查英语字典一样,单词按照字母顺序排列)所以可以很方便的进行判断最长公共前缀

def longestCommonPrefix(self, strs: List[str]) -> str:
if len(strs)==0: #判断输入是否为空
return ''
if len(strs)==1: #若列表长度为1,直接返回strs[0]
return strs[0]
if '' in strs: #若列表里含有'',直接返回''
return '' result=''
strs.sort() #将字符串数组排序
for i in range(len(strs[0])):
if i< len(strs[-1]) and strs[0][i]==strs[-1][i]:
result+=strs[0][i]
else:
break
return result

  执行用时:54ms

【leetcode算法-简单】14. 最长公共前缀的更多相关文章

  1. Leetcode题库——14.最长公共前缀

    @author: ZZQ @software: PyCharm @file: longestCommonPrefix.py @time: 2018/9/16 17:50 要求:查找字符串数组中的最长公 ...

  2. 【Leetcode】【简单】【14最长公共前缀】【JavaScript】

    题目 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",& ...

  3. LeetCode 14. 最长公共前缀(Longest Common Prefix)

    14. 最长公共前缀 14. Longest Common Prefix 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". Lee ...

  4. Java实现 LeetCode 14 最长公共前缀

    14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",&quo ...

  5. python刷LeetCode:14. 最长公共前缀

    难度等级:简单 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",& ...

  6. 14. 最长公共前缀----LeetCode

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  7. [LeetCode]14.最长公共前缀(Java)

    原题地址: longest-common-prefix 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入:st ...

  8. python(leetcode)-14最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  9. 【LeetCode】14. 最长公共前缀

    题目 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 示例 1:输入: ["flower","flow&quo ...

随机推荐

  1. 51nod 1594 Gcd and Phi 反演

    OTZ 又被吊打了...我当初学的都去哪了??? 思路:反演套路? 提交:\(1\)次 题解: 求\(\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(gcd(\varphi(i ...

  2. pyecharts v1 版本 学习笔记 柱状图

    柱状图 bar 基本演示例子 from pyecharts import options as opts from pyecharts.charts import Bar c =( Bar().add ...

  3. python-selenium视频教程分享

    1.python电子书 2.课件 3.前段调试工具 4.文档资料 5.python-selenium课程列表 6.sele01-sele22 百度网盘连接:链接: https://pan.baidu. ...

  4. c++ 数组赋值

    // generate_n example #include <iostream> // cout #include <algorithm> // generate_n usi ...

  5. 初次接触webpack

    1.学习地址 中文文档 https://www.webpackjs.com/concepts/ webpack-dev-server配置说明 https://www.webpackjs.com/con ...

  6. 记录下我用Jenkins打包碰到的坑

    使用Andorid Studio 打包都是正常的,但是使用Jenkins自动打包一直报错,尝试过网上的各种方案,依然都不行,报错如下. FAILURE: Build failed with an ex ...

  7. linux安装puppeteer

    1.安装 下载淘宝镜像的,可以同时下载puppeteer和chromium下面两条语句即可 npm install -g cnpm --registry=https://registry.npm.ta ...

  8. 粘性定位 sticky

    position:sticky  粘性定位 top:200px 这是他的阈值,意思是当我们页面滚动到 200 像素的使用,我们的元素会自动变成固定定位,不到200像素的时候,我们的元素走的是相对定位 ...

  9. eclipse java

    1Java:Java是由Sun Microsystems公司推出的Java面向对象程序设计语言和Java平台的总称. 2.Eclipse:Eclipse 是一个开放源代码的.基于Java的可扩展开发平 ...

  10. <JavaScript> 匿名函数和闭包的区别

    匿名函数:没有名字的函数:并没有牵扯到应用其他函数的变量问题.仅仅是没有名字. 定义方式: 1,var A = function(){ }; 2, (function (x,y){ })(2,3); ...