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; };