编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:
输入: ["flower","flow","flight"]
输出: "fl"示例 2:
输入: ["dog","racecar","car"]
输出: ""说明:
所有输入只包含小写字母 a-z 。
输入: ["flower","flow","flight"]
输出: "fl"示例 2:
输入: ["dog","racecar","car"]
输出: ""说明:
所有输入只包含小写字母 a-z 。
var r = ''
if (arr.sort)
{
r = arr[0].toLowerCase()
for(var i=1;i<arr.length;i++){
var x='';
for(var j=0;j<r.length&&j<arr[i].length;j++){
if (r[j]==arr[i].toLowerCase()[j])
{
x+=r[j]
}else{
break
}
}
r=x
if (!x)
{
break;
}
}
}
return r
}
alert(prefix(['xxoo','xxuroo','xxalloo','xxinoo']))
function getPrefix(arr) {
if (Array.isArray(arr)) {
let len = arr.length
if (len > 1) {
let reg = arr.join(',').match(new RegExp('^(.+).*,' + Array(len - 1).fill('\\1.*').join(',')))
return reg ? reg[1] : ''
} else {
return arr[0]
}
}
}
console.log(getPrefix(["flower","flow","flight"]))
console.log(getPrefix(["dog","racecar","car"]))
console.log(getPrefix(["我艹cdog","我艹cecar","我艹car"]))
console.log(getPrefix(["racecar"]))
alert(prefix([])) //出错
if (Array.isArray(arr)) {
let newArr = arr.slice(0) //克隆一份
let len = arr.length
if (len > 1) {
newArr.sort((a, b) => a.length > b.length ? 1 : -1) //排序一下
let per = newArr.shift()
let match
while(per && !match){
match = true
newArr.forEach(v=>{
if(!v.startsWith(per)){
match = false
}
})
if(!match){
per = per.slice(0,-1)
}
}
return per
} else {
return arr[0]
}
}
}
console.log(getPrefix(["flower","flow","flight"]))
console.log(getPrefix(["dog","racecar","car"]))
console.log(getPrefix(["我艹cdog","我艹cecar","我艹car"]))
console.log(getPrefix(["racecar"]))或者使用split分割判断都可。
console.log(getPrefix([])) //出错
function getPrefix(arr) {
if (Array.isArray(arr)) {
let len = arr.length
if (len > 1) {
let reg = arr.join(',').match(new RegExp('^(.+).*,' + Array(len - 1).fill('\\1.*').join(',')))
return reg ? reg[1] : ''
} else {
return len === 1 ? arr[0] : ''
}
}
}
var r = arr.join(",").match(/^([^,]+)[^,]*(,\1[^,]*)*$/);
return r ? r[1] : "";
}
alert(prefix(["flower","flow","flight"]))
alert(prefix([])) //出错 if (arr.sort)修改成
if (arr.sort && arr.length)之前没有判断数组元素为0的情况,自己调整下,不要什么都等别人弄好了