一.14. 最长公共前缀
查找字符串数组中的最长公共前缀。如果不存在,返回空字符串 ""
。只小写字母 a-z
例:["flower","flow","flight"] // "fl"
二.思路
com -公共前缀字符串
遍历数组 再遍历每个字符串 如果每个字符和com中的有不一样的 就停止此时j 截取com从0到j
遍历数组时 如果com为空 说明公共的已经为空了
var longestCommonPrefix = function (strs) {
//如果是空就返回'' 默认第一个是最长的字符 先遍历每个字符串
if (strs.length == 0) return '';
let com = strs[0];
for (let i = 0; i < strs.length; i++) {
for (var j; j < strs[i].length && j < com.length; j++) {
//比较公共的每个是否和这个字符串的每个 相同 记录长度 截取
if (com[j] !== strs[i][j]) break;
}
com = com.slice(0, j);
if (com.length == 0) return '';
}
return com;
};
三.知识点
横向扫描:依次遍历数组中的每个字符串,对于每个遍历到的字符串,更新最长公共前缀,当遍历完所有的字符串以后,即可得到字符串数组中的最长公共前缀。
for(var i =0;) i 在for循环外扔存在(i存在于外层函数作用域中)
for(let i = 0) i 在for循环外不存在(形成了一个块级作用局)