Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
一、题目描述:
14. 最长公共前缀 - 力扣(LeetCode) (leetcode-cn.com)
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
- 1 <= strs.length <= 200
- 0 <= strs[i].length <= 200
- strs[i] 仅由小写英文字母组成
二、思路分析:
- 先排除长度为 0 和 1 的情况。
- 对数组进行排序,sort 用默认排序,或使用 strs.sort((a, b) => a > b? 1: -1) 方法排序。
- 排序好的数组,获取数组头和尾两个数据,获取最短的字符串长度做为遍历次数。
- 遍历获取相同前缀字符串。
三、AC 代码:
var longestCommonPrefix = function (strs) {
if (strs.length === 0) return ''
else if (strs.length === 1) return strs[0]
strs.sort()
let start = strs[0],
end = strs[strs.length - 1],
len = start.length < end.length ? start.length : start.length,
result = ''
for(let i = 0; i < len; i++) {
if (start[i] !== end[i]) break
result += start[i]
}
return result
};
四、总结:
虽然是个简单题,但是官方给了4个答案,加上题解区,各种大佬的解法都很厉害,继续学习~
范文参考:
14. 最长公共前缀 题解 - 力扣(LeetCode) (leetcode-cn.com)