编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
先找到最短的字符串和它的位置,每次循环,从最短字符串中多取一个字符串,例如["flower","flow","flight"] ,f,然后再遍历列表每一个元素,最前面是否是这个字符串,是的话添加下一个,不是就返回上一次没添加新字符串时候的字符串
var longestCommonPrefix = function (strs) {
先找到最短的字符串和它的位置
let minLength = 999999999999
for (let x = 0; x < strs.length; x++) {
minLength = Math.min(minLength, strs[x].length)
}
let minIndex = strs.findIndex(item => item.length === minLength)
let string = ''
let final = ''
for (let j = 0; j < minLength; j++) {
string = string + strs[minIndex][j]
for (let i = 0; i < strs.length; i++) {
if (strs[i].slice(0, j + 1) !== string) {
console.log(final)
return final
}
}
final = final + strs[minIndex][j]
}
return final.length ? strs[minIndex] : ''
};