Skip to content

14 最长公共前缀 #5

@sailei1

Description

@sailei1

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions