写在前面
说起来,今天是跟着大佬刷LeetCode题库的第五天了,一直以来,题目的难度对于我这个小白来讲,基本上属于难的很难看懂,不难的基本上也要靠百度,主要还是对于的库的不熟悉,对于基础思路不清晰导致的。现在开始慢慢在回看的基础教程,也会慢慢地分享学习和生活上的一些心得。
题目: 最长公共前缀
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
输入不存在公共前缀。
所有输入只包含小写字母 a-z 。
方法一:
其实这个方法是官方推荐的方法四,即二分查找法,首先找出最短的字符串,然后将最短字符串中的字符进行比较即得到最终结果。这个也是官方库os.math中封装好的commonprefix函数:
说明:
方法二:
这个源于网上一个大神的做法,进行set之后可以直接比较每个字符,算是暴力解法
说明:
*test 会将列表或者元组转化为可变参数。
zip()函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
那么这个函数对于刚刚的例子,返回的值应该是
set函数是将这一个个元组转换为集合形式,根据集合的互异性,自然也就得出了公共前缀。
领取专属 10元无门槛券
私享最新 技术干货