题目
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。
解法
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
var re = strs[0] ? strs[0]:'';
for (var i=1;i<strs.length;i++){
var regex = new RegExp('^'+re);
while (!regex.test(strs[i])&&re.length){
re = re.slice(0,re.length-1);
regex = new RegExp('^'+re);
}
}
return re;
};
思路
- for循环遍历每一个字符串元素
- ^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置
- 先设置第一个字符串的长度为最长的可能,然后依次减小