编写一个函数来查找字符串数组中最长的公共前缀字符串。
思路:
最大的公共前缀,肯定要小于数组中最短的字符串,然后只要比较最短的和最长的比较就可以了。
暴力遍历貌似效率挺低的。
js的sort()方法貌似效率还可以
array.prototype.sort()方法会根据字符串的每个字符的顺序排序。
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
let len = strs.length,
res = "",
i;
if(len === 0 || strs === null){
return "";
}
strs.sort();
let str1 = strs[0],
str2 = strs[len-1],
min_len = Math.min(str1.length, str2.length);
for(i = 0 ; i < min_len ; i++){
if(str1.charAt(i) !== str2.charAt(i)){
break;
}
}
res = str1.substring(0,i);
return res;
};