原题链接:leetcode14
题目描述:给定一个字符串数组,求最长的公共前缀
思路:首先判断边界条件,当strs为空的时候直接返回空字符串;然后将第一个元素作为res返回值,然后依次遍历剩下的字符串,对每一个字符串的每一个字符进行判断是否相等,如果不相等重新计算res返回值,并终止循环,继续下一个字符串的判断,直到所有的字符串比较完成得到最终的返回值
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function (strs) {
if (strs.length == 0) return ''
let res = strs[0]
// 挨个遍历剩下的字符串
for (let i = 1; i < strs.length; i++) {
// 每一个字符串的每一个元素进行比较是否相等
let j = 0
for (; j < res.length && j < strs[i].length; j++) {
if (res[j] != strs[i][j]) {
break // break只停止当前这一层
}
}
// 当j对应的元素不想等的时候,才跳出上面的j循环,此时使用slice左闭右开取元素重新得到前缀
res = res.slice(0, j)
}
return res
};
let strs = ['str', 'st']
console.log(longestCommonPrefix(strs))