JS算法题之最长公共前缀
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
说明:所有输入只包含小写字母 a-z 。
示例
输入: ["flower","flow","flight"]
输出: "fl"输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。解答
这题不难,我们直接遍历数组的字符串的每一个字符,相同则添加到前缀,否则返回
var longestCommonPrefix = function(strs) {
if(strs.length == 0){
return "";
}
if(strs.length == 1){
return strs[0];
}
let minLen = -1, prefix = '', char = '';
strs.forEach(ele => {
if(minLen == -1){
minLen = ele.length;
}
else{
minLen = ele.length < minLen ? ele.length : minLen;
}
});
if(minLen == 0){
return "";
}
for(let i = 0; i < minLen; i++){
char = strs[0][i];
// 用于标记该字符是否为前缀
let flag = true;
for(let j = 1; j < strs.length; j++){
if(strs[j][i] != char){
flag = false;
}
}
if(flag){
prefix += char;
}
else{
return prefix;
}
}
return prefix;
};本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!