首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Leetcode打卡 | No.014 最长公共前缀

写在前边:

欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!


No.14 最长公共前缀

原题:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""

难度指数:简单

示例:

1.示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 2.示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。

分析:这里小詹第一反应想到了两种思路。第一是利用正则匹配的方法,我们用过一个强大的模块,叫做re模块,爬妹子时想必很熟练吧……第二种是将数组中所有字符串从第一个字符开始依次对比。具体如下。

思路一:利用re模块

这里首先将第一个字符串(如果不为空数组的前提下)用来与其他字符串依次匹配,如果遇到无法匹配的,则将其尾部去掉一个字符再进行匹配。直到遍历匹配结束后,返回最后的结果(代码中的prefix)

这一思路简单易行,有点不明白的是,效率很低居然才beat38%左右。

思路二:逐字符比较

这一思路比较容易想到,实现起来也不复杂。步骤简单概括起来是

  1. 考虑极端情况(数组中字符串个数为0或1)
  2. 求取数组中最短字符串的长度(代码中提供了两种方法)
  3. 从最短字符串的第一个字符开始,依次将所有字符与其他所有字符串对应位置的字符比较。

代码如下所示,有详细注释:

这一思路简单粗暴,结果却是非常的nice!!!

往期推荐

Python 4 种不同的存取文件骚操作

Python 实现京东自动登录领京豆

下一篇
举报
领券