第一种方法
for循环第一个字符串,然后再for循环除了第一个字符串以外的其它字符串,比较其它字符串是否以某个字符串开头,从而找到公共前缀
function getCommonStr(arr) {
if(arr && Array.isArray(arr) && arr.length) {
let firstStr = arr[0]
let res = ''
for(let i=0;i<firstStr.length;i++) {
let firstCom = firstStr.substr(0,i+1)
let flag = true
for(let j=1;j<arr.length;j++) {
if(!arr[j].startsWith(firstCom)) flag = false
}
if(flag) {
res =firstCom
continue;
}
break;
}
return res
}
return ''
}
console.log(getCommonStr(["flower","flow","flight"])); // "fl"
第二种方法
function getCommonStr(strs) {
if(strs && Array.isArray(strs) && strs.length) {
// 拿第一个字符串作为参照
let comStr = strs[0]
// 获取每个字符串
for(let i=1;i<strs.length;i++) {
// 获取每个字符串的每个字符,且小于公共字符串的长度(首次默认是第一个字符串)
for(var j=0;j<strs[i].length && j<comStr.length;j++) {
// 如果第一个字符串在j的位置不等于其它字符串再j的位置,则break
if(comStr[j] !== strs[i][j]) break;
}
comStr = comStr.substr(0, j)
console.log(comStr);
if(comStr.length == 0) return ''
}
return comStr
}
return ''
}
console.log(getCommonStr(["flower","flow","flight"])); // "fl"