14. Longest Common Prefix(js)

14. Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".

Example 1:

Input: ["flower","flow","flight"]
Output: "fl"

Example 2:

Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
题意:给定一个字符串数组,求出最长的公共前缀子串
代码如下(js):
    var longestCommonPrefix = function(strs) {
// 法一
        
//         if(strs.length==0){
//             return ""
//         }
//         if(strs.length==1){
//             return strs[0];
//         }
//         var len=strs.length;
        
//         var resStr=[];
//         var isEqual=false;
//         var min=strs[0];
//         var minLen=min.length;
//         //找出数组中最短的字符串
//         strs.forEach(item=>{
//             if(item.length<min.length)
//                 min=item;
//         })
//         for(var i=0;i<minLen;i++){
            
//             for(var j=0;j<len;j++){
//                 resStr.push(strs[j].slice(0,i+1));
//             }
//             //判断是否每一项都相等
//             isEqual=resStr.some(item=>{
//                 return item!==resStr[0];
//             })
//             if(isEqual ){
//                 return strs[0].slice(0,i);
//             }
//             if(i+1==minLen){
//                 return min
//             }
//             resStr=[];
//         }
//         return ""
// 法二
        if(!strs || strs.length===0) return '';
        let pre=strs[0];
        let i=0;
        while(i<strs.length){
            while(strs[i].indexOf(pre)!==0){
                pre=pre.substring(0,pre.length-1);
            }
            i++;
        }
        return pre;
    };

 

posted @ 2019-02-14 21:49  mingL  阅读(207)  评论(0编辑  收藏  举报