掘金团队号上线,助你 Offer 临门! 点击 查看详情 (opens new window)
# 前言
第一次参加掘金打卡活动,别的不说 主要是奔着奖励来的。4.12开始为了达到14题小目标 冲冲冲!!!这是第9题。
# 题目描述
题目链接:最长公共前缀 (opens new window)
题目描述我用截图leetcode的为主,所以题目如下图
# 思路分析
因为求前缀,所以要满足这个前缀要在数组中所有项都能indexOf、includes到,是所有项的共同子集
1.特殊情况:首先判断判断空数组的情况 直接返回'',如果有''子项也是返回''
2.把第一项拿出来切割遍历,去判断切割出来的字符串是否满足包含全部项
傻了 是所有项都是重头开始计算 而我这样的写法只能满足第一项是从头开始 把includes改成indexOf===0能搜到且是第一位 貌似可以试试 果然如下图
发现这样就满足条件了
# AC 代码
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
if(!strs.length||strs.includes('')){
return ''
}
let str1 = strs[0]
let len = str1.length
let result=''
for(let i=0;i<len;i++){
let str2 = str1.slice(0,i+1)
let flag=strs.every(item=>{
return item.indexOf(str2)===0
})
if(flag){
result=str2
}
}
return result
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 总结
坚持就是胜利。第9题算法完成,坚持就是胜利!!!
↓↓↓
↑↑↑
这里可以点!这里可以点!这里可以点!