014. 最长公共前缀
鲁迅曾说,每天刷一道二哥的 LeetCode 笔记,不但身体健康,而且精神抖擞。
题意
编写一个方法来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
难度
简单
示例
输入:strs = ["flower","flow","flight"]
输出:"fl"
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
分析
这道题最重要的是,搞清楚什么是公共前缀。公共前缀就是字符串数组中,所有字符串都包含的前缀。例如,字符串数组 ["flower","flow","flight"] 的最长公共前缀就是 fl。
一个很容易想到的办法,我们将数组中的第一个字符串作为初始的最长公共前缀,然后逐个将它与数组中的其他字符串进行比较。在比较的过程中,我们逐步缩短这个公共前缀,直到它同时是所有字符串的前缀。
①、初始前缀:假设整个数组的最长公共前缀就是数组中的第一个字符串,即 prefix = strs[0]。
②、遍历字符串数组:遍历字符串数组中的每一个字符串。对于每个字符串 strs[i],我们检查它是否包含当前的最长公共前缀 prefix。(可以跳过第一个,因为第一个就是它自己)
③、更新前缀:
- 如果当前字符串
strs[i]包含前缀prefix,我们就继续下一个字符串的比较。 - 如果当...
真诚点赞 诚不我欺
回复