题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。
写法1:
var longestCommonPrefix = function(strs){
let res = "";
if(strs.length == 0){
res = "";
return res;
}
//i代表第一个字符串中每一个元素的下标
//下面将把其余每一个字符串中的第i个元素与第一个字符串中的第i个元素进行比较
for(let i = 0;i < strs[0].length;i++){
//j代表第几个字符串,从下表为1的字符串开始
for(let j = 1;j < strs.length;j++){
if(strs[j][i]!=strs[0][i]){
return res;
}
}
res += strs[0][i];
}
return res;
}
写法二:
var longestCommonPrefix = function(arr){
if(arr.length==0){
return "";
}
//外层for循环控制数字内的字符串个数
//比较数组内每一个字符串的第i个元素是否相等,如果相等,则拼接到结果上
var res="";
for(var i = 0;i<arr.length;i++){
var temp = arr[0][i];
if(arr.every(el=>{
return el.charAt(i)==temp;
})){
res+=temp;
}else{
break;
}
}
return res;
}
其中,every()方法用于使用指定函数检测数组中的所有元素是否符合条件:
1)如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
2)如果所有元素都满足条件,则返回 true。
charAT()方法可返回指定下标位置的元素。
版权声明:本文为xt_123456原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。