
leetcode题解14-最长公共前缀
检查数组是否为空。如果为空,直接返回空字符串。 初始化一个空字符串作为结果,用于存储公共前缀。 遍历第一个字符串的每个字符位置,逐步构建前缀。 对于每一个当前字符位置 i:a. 取出第一个字符串的第 i 个字符。b. 遍历其他字符串的第 i 个字符,判断是否与第一个字符串的字符相同。c. 如果有任何一个字符串的第 i 个字符与第一个字符串的不同,则停止比较,返回当前的结果。d. 如果所有字符串的第 i 个字符都相同,则将字符添加到结果中,并继续下一个位置。
发布日期:2025-04-05 05:03:50
浏览次数:10
分类:精选文章
本文共 1644 字,大约阅读时间需要 5 分钟。
问题描述
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:
输入: ["flower", "flow", "flight"]输出: "fl"示例 2:
输入: ["dog", "racecar", "car"]输出: ""说明: 所有输入只包含小写字母 a-z。
算法思想
按照题意,我们只需拿出数组中的第一个字符串,然后来判断其他字符串是否与第一个字符串指定位置上的字符相等。具体步骤如下:注意:
- 如果数组中某个字符串比第一个字符串短,那么前缀最多只能取到该字符串的长度。
- 存在空字符串的情况,直接返回空字符串。
代码实现
问题描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。 示例 1:输入: ["flower", "flow", "flight"]
输出: "fl"示例 2:
输入: ["dog", "racecar", "car"]
输出: ""说明:
所有输入只包含小写字母 a-z。算法思想
按照题意,我们只需拿出数组中的第一个字符串,然后来判断其他字符串是否与第一个字符串指定位置上的字符相等。如果存在公共前缀,我们逐步扩展这个结果。当发现位置上的字符不一致时,就断定前缀结束。这里需要注意的问题是边界条件,例如当数组为空,或者某个字符串的长度小于第一个字符串等。
代码实现
以下是一个实现思路示例:
```htmlfunction longestCommonPrefix(strs) { if (strs.length === 0) { return ""; } let result = ""; const firstStr = strs[0]; for (let i = 0; i < firstStr.length; i++) { const char = firstStr[i]; for (const str of strs) { if (str[i] !== char) { return result; } } result += char; } return result;}
该函数首先检查数组是否为空。如果为空,直接返回空字符串。然后取出第一个字符串作为基准,逐个检查每个字符位置的所有字符串是否相同。如果某一位置存在不同,则返回当前结果。如果所有字符串的所有字符都相同,则继续检查下一个字符位置直到处理完第一个字符串的所有字符。当第一个字符串处理完毕后,返回结果。
在实现过程中需要注意以下几点:
- 如果数组中存在空字符串,则直接返回空字符串。 - 如果某个字符串的长度小于第一个字符串,则只比较该字符串的可用部分。 - 对于每一个字符位置,如果某个字符串在该位置不存在字符,则直接断定没有公共前缀。发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月24日 19时58分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leaflet加载接入腾讯矢量、腾讯影像地图(leaflet篇.4)
2025-04-04
leaflet动态热力图分析(leaflet篇.16)
2025-04-04
leaflet动态热力图(大数据版)(leaflet篇.17)
2025-04-04
leaflet区域聚合点(点击后散开并进行合理定位)(leaflet篇.22)
2025-04-04
leaflet叠加geojson图层(leaflet篇.38)
2025-04-04
leaflet叠加geojson图层(挖洞)(leaflet篇.43)
2025-04-04
leaflet叠加多个面(面的数据结构)(leaflet篇.62)
2025-04-04
leaflet图标跳动(leaflet篇.45)
2025-04-04
leaflet地图无级别缩放(移动端)(leaflet篇.76)
2025-04-04
leaflet实现wms服务面要素可点击(leaflet篇.30)
2025-04-04
Leaflet快速入门与加载OSM显示地图
2025-04-04
leaflet接入geoserver发布的热力图服务(leaflet篇.29)
2025-04-04
leaflet接入土地资源(leaflet篇.55)
2025-04-04
leaflet接入天地图(经纬度投影256)(leaflet篇.24)
2025-04-04
leaflet点采集与点编辑(leaflet篇.5)
2025-04-04
leaflet聚合图(leaflet篇.11)
2025-04-04
leaflet聚合图(大数据版)(leaflet篇.19)
2025-04-04
leaflet自定义地图样式地图(插件实现)(leaflet篇.18)
2025-04-04
leaflet虚线(leaflet篇.60)
2025-04-04