leetcode每日一题(2021.5.7)——最长公共前缀
题目:最长公共前缀(简单)
一、题干
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
二、示例
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
三、思考过程
首先需要遍历数组中的每个元素,这个必须完成,数组至少遍历一次。
查找两个字符串公共前缀的方法可以单独实现,然后在代码中调用并返回公共前缀,这个可以先不考虑。
接下来先思考遍历过程,第一种方法是暴力求解,这种方式简单粗暴,只需要嵌套一个for循环把数组中的第一个元素和后面所有元素依次比较就可以实现。
可以先尝试编写一下
判断代码:

执行代码:

执行结果:

显然,这不是最优结果,因为在compare方法中也有循环,compare方法也在循环中,所以时间复杂度是O(mn),这个属于次方级时间复杂度,显然不好,不过由于我技术有限也只能想到这么多。
官方解法:

官方解法还有很多种,有兴趣可以去看看。
总结:
这道题对我这种菜鸟来说很不友好,很多测试用例是我没有想到的,对需求分析还是不够完善。

浙公网安备 33010602011771号