判断一串字符串类型的数组中公共的前缀,有一项不一样则return空;
实例1:
输入: ["flower","flow","flight"]
输出: "fl"
实例2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
实例3:
输入: ["abc","abc","lzy"]
输出: ""
解释: 有一项不是公共的前缀
代码:
//编写一个函数来查找字符串数组中的最长公共前缀。
function longString(arr){
// 拿出数组第一个元素
var str = arr[0]
// 从第二个元素开始遍历
for(var i=1;i<arr.length;i++){
// 拿第一个元素跟剩下的字符串元素遍历比较
//!!!注意!!!这里要用var 不能用let 否则
for(var j=0;j<str.length&&j<arr[i].length;j++){
// 如果一项不等于跳出循环
if(str.charAt(j)!==arr[i].charAt(j)){
break
}
}
// 字符串截取
str=str.substring(0,j)
}
if(str===null){
return ''
}
return str
}
longString(['abc','ab','abcd'])
难点总结:
string.charAt ( j ) // 这个方法可返回指定位置的字符
string.substring(0 , j ) //字符串截取