前端笔试——js字符串最长公共前缀

题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。
写法1:

var longestCommonPrefix = function(strs){
	let res = "";
	if(strs.length == 0){
		res = "";
		return res;
	}
	//i代表第一个字符串中每一个元素的下标
	//下面将把其余每一个字符串中的第i个元素与第一个字符串中的第i个元素进行比较
	for(let i = 0;i < strs[0].length;i++){
		//j代表第几个字符串,从下表为1的字符串开始
		for(let j = 1;j < strs.length;j++){
			if(strs[j][i]!=strs[0][i]){
				return res;
			}
		}
		res += strs[0][i];
	}
	return res;
}

写法二:

var longestCommonPrefix = function(arr){
	if(arr.length==0){
		return "";
	}
	//外层for循环控制数字内的字符串个数
	//比较数组内每一个字符串的第i个元素是否相等,如果相等,则拼接到结果上
	var res="";
	for(var i = 0;i<arr.length;i++){
		var temp = arr[0][i];
		if(arr.every(el=>{
			return el.charAt(i)==temp;
		})){
			res+=temp;
		}else{
			break;
		}
	}
	return res;
}

其中,every()方法用于使用指定函数检测数组中的所有元素是否符合条件:
1)如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
2)如果所有元素都满足条件,则返回 true。
charAT()方法可返回指定下标位置的元素。


版权声明:本文为xt_123456原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。