编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
var longestCommonPrefix = function(strs) {
var re = '';
// 为空直接返回''
if (!strs.length) return re;
// 长度为1直接返回当前元素
if (strs.length === 1) return strs[0];
// 第j位, 循环的是数组中的第一个元素
for (var j=0;j<strs[0].length;j++){
// 第i个 循环的是整个数组
for (var i=1;i<strs.length;i++){
// 逐位比较,比较全部通过时re增加当前字符,不通过时直接返回re。
if (strs[i][j] != strs[0][j]) {
return re
}
}
re += strs[0][j];
}
};
console.log(longestCommonPrefix(['ppp','popo']))或者
var longestCommonPrefix = function(strs) {
// 以第一个字符串为对照,后面的字符串都用startsWith进行判断
if(strs && strs.length <= 1){
return strs[0] || ''
}
let result = ''
let firstStartsWith= ''// 假设公共前缀
let first = strs[0] // 拿到第一个数据
for(let j = 0; j < first.length; j++) {
firstStartsWith += first[j]
// 遍历数组,如果都是以第一个字符开始的
if(strs.every(item => item.startsWith(firstStartsWith))) {
result = firstStartsWith
}else{
return result
}
}
};
console.log(longestCommonPrefix(['ppp','popo']))版权声明:本文为weixin_49035434原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。