前言
这是我第10篇刷题打卡文章,曾几何时我没想过自己会这样在晚上11点还在写题解,但是这次我做到了,发现也没有想象中那么难。
今日题目
leecode14. 最长公共前缀
写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
题目解析
首先审题,最长公共前缀(想了很久以为是最长字串,结果搞了半天没搞明白,大家一定注意审题),也就是要从头开始一个个往后比较
注意特殊情况:
- strs如果为[], 直接返回''
- strs只有一个字串, 那就直接返回这个字串
假设最长公共前缀 result 的值为第一个字符串, 遍历后面的字符串,依次将其与 result 进行比较,两两找出公共前缀,最终结果即为最长公共前缀
var longestCommonPrefix = function(strs) {
if (strs.length == 0) return ""
if (strs.length === 1) return strs[0]
let result = strs[0]
for(let i = 1; i < strs.length; i++) {
let j = 0
for(; j < result.length && j < strs[i].length;j++) {
if(result[j] != strs[i][j])
break
}
result = result.substr(0, j)
if (result === "")
return result
}
return result
}
总结
今日份任务完成,棒呆!
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情