写在前边:
欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!
No.14 最长公共前缀
原题:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
。
难度指数:简单
示例:
1.示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 2.示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
分析:这里小詹第一反应想到了两种思路。第一是利用正则匹配的方法,我们用过一个强大的模块,叫做re模块,爬妹子时想必很熟练吧……第二种是将数组中所有字符串从第一个字符开始依次对比。具体如下。
思路一:利用re模块
这里首先将第一个字符串(如果不为空数组的前提下)用来与其他字符串依次匹配,如果遇到无法匹配的,则将其尾部去掉一个字符再进行匹配。直到遍历匹配结束后,返回最后的结果(代码中的prefix)
这一思路简单易行,有点不明白的是,效率很低居然才beat38%左右。
思路二:逐字符比较
这一思路比较容易想到,实现起来也不复杂。步骤简单概括起来是
代码如下所示,有详细注释:
这一思路简单粗暴,结果却是非常的nice!!!
往期推荐
Python 4 种不同的存取文件骚操作
Python 实现京东自动登录领京豆