-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解法:
1 找到长度最低的那个元素
2 转换字符串数组
3 从后面依次按照字母找
4 如果都存在 确定是不是相邻关系。
5 返回相邻结果集
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
let rs=''; //不匹配时 返回'';
if(strs.length==1){ // 只有一个的时候返回 当前值
rs=strs[0];
}else if(strs.length>1){
let t_arr=strs.sort((el,next)=>{
return el.length-next.length;
})
let els=t_arr[0].split(''),temp=-1; //找到长度最低的那个元素
for(let l=0;l<els.length;l++){
let t=true;
for(let i=1;i<t_arr.length;i++){ //从后面依次按照字母找
if(t_arr[i][l].indexOf(els[l])==-1){
t=false; //找到没有的时候跳出循环
break;
}
}
if(t){ //如果都存在 确定是不是相邻的
if(l-temp===1){ rs+=els[l];}
temp=l;
}
}
}
return rs;
};
Metadata
Metadata
Assignees
Labels
No labels