最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。 说明:
解题思路
暴力解决
首先可以先阅读一下题目:“最长公共前缀”, 可拆分位几个关键词,“最长”,“公共”,“前缀”,需要注意的是’前缀’,即只考虑从0开始往后的字符串,不需要考虑中间或后部的公共部分。
取数组的第一个元素,将数组的第一个元素与数组的其余元素逐一比较,判断是否有相同的字符,若有,则将相同的字符剪切返回。
1.取数组的第一元素
2.遍历数组除第一个元素以外的其余元素
3.遍历每个元素的字符串
4.判断每个每个字符串中的字符值是否相同,不相同,则结束当前循环
5.利用substring()函数,剪切最长公共字符
/**
* @param {string[]} strs
* @return {string}
*/
//逐个字符一一比较,取数组的第一个元素,将第一个元素与其余元素一一比较,判断是否有相同的字符
var longestCommonPrefix = function(strs) {
if (!strs.length) {
return '';
}
let first = strs[0];
for (let i = 1; i < strs.length; i++) {
let j = 0;
for (j; j < first.length; j++) {
if (first.charAt(j) !== strs[i].charAt(j)) {
break;
}
}
first = first.substring(0, j);
}
return first == '' ? '' : first;
};