例如:aaafsd,aawwewer,aaddff的共同前缀为“aa”
思路:我们以第一个字符串为参照,依次与后面字符串的进行比较。
实现1:
let arr = ['aaafsd', 'aaawewer', 'aaadff']
function publicStr(arr){
if(arr.length == 0 || arr == null){
return ""
}
let fa = arr[0]
let a = ""
for(let i = 1; i < arr.length; i++){
for(let j = 0; j < arr[i].length - 1; j++){
if(fa[j] === arr[i][j]){
a += fa[j]
}else{
fa = a
}
}
a = ""
}
return fa
}
publicStr(arr)
实现二:
let arr = ['aaafsd', 'aaawewer', 'aaadff']
function publicStr(arr){
if(arr.length == 0 || arr == null){
return ""
}
let maxId = arr[0].length - 1
for (let i = 1; i < arr.length; i++) {
let index = -1
while (index < maxId){
if(arr[0].charAt(index+1) === arr[i].charAt(index+1)) {
index++
}else{
break
}
}
if(index == -1){
return ""
}
maxId = index
}
return arr[0].substring(0, maxId + 1)
}
publicStr(arr)