**话不多说,直接上题目 **
编写一个函数来查找字符串数组中的最长公共前缀, 如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。
解题思路:找出公共部分需要遍历每一项去比对,我想到的是需要去用到双层循环,取出第一个,把第一个与后面的比对,找到相同,就截取到相同的部分,直至结束。
(虽然是解出来了,但是消耗了内存挺多的,也不是最优方法)
const longestCommonPrefix = function(strs) {
if (strs) {
// 拿到数组中的第一个
let str = strs[0];
// 然后遍历除第一个之外
for (let i = 1; i < strs.length; i++) {
for (var j = 0; j < strs[i].length; j++) {
if (strs[i][j] !== str[j]) {
break;
}
}
str = str.slice(0, j);
if(!str){
return '';
}
}
return str;
}else{
return '';
}
};
如果有更好的解法,可以评论区告诉我,我去学习,嘻嘻(●’◡’●)
如果对你有帮助的话,麻烦一键三连,关注一手 感谢感谢(抱拳致谢)