编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function (strs) {
if (!strs.length) {
return "";
}
let min = strs[0];
for (let str of strs) {
if (str.length < min.length) {
min = str;
}
}
//找到最短的字符串,判断如果其他字符串indexOf(最短字符串)!==0,就让最短字符串减1再判断
for (let minLen = min.length; minLen >= 0; minLen--) {
for (let str of strs) {
if (str.indexOf(min)) {
min = min.substring(0, minLen - 1);
break;
}
}
}
return min;
};
我又想了半个小时,也是笨办法