JS 算法题-最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
输入:[“abca”,“abc”,“abca”,“abc”,“abcc”]
输出:“abc”
想法:横向去比较,先假设字符串数组中第一个是最长前缀,然后分别和后面的字符串去比较,如果最长前缀不同则更新
用到的 方法 : substring()
用于提取字符串中介于两个指标下标之间的字符
语法: obj.substring(start,stop)
方法2 :indexOf()
可以返回某个指定的字符串值在字符串中首次出现的位置,如果要检索的字符串值没有出现,则该方法返回-1.
string.indexOf(substring) 搜索string中的substring,默认从0位开始。
string.indexOf(substring,m) 搜索string中的substring,默认从m位开始
function longestCommonPrefix( strs ) {
// write code here
//出口
if(strs == null|| strs.length==0){
return "";
}
//假设初始最长前缀是第一个字符串
var results = strs[0];
for(var i=0;i<strs.length;i++){
while(strs[i].indexOf(results)!=0){
results = results.substring(0,results.length-1);
if(strs.length == 0){
return "";
}
}
}
return results;
}
module.exports = {
longestCommonPrefix : longestCommonPrefix
};