玖叶教程网

前端编程开发入门

前端面试碰到这种难题(前端面试难点)

这种题拿出来讲思路,真是无法言语。我用了一个半小时才封装了下面的函数,看来是我水平不够……

//要求:删除相邻的两个大小写的相同字母,
//比如:字符串'aAABbacaa','Aa'、'Aa','Bb',都要删除,aa不用删。
//这个删除后的结果是'caa'。
let str = 'aAABbacaa';				

function handleArr(arr){
	let i = 0;
	let j = i+1;
	let bool = false;
	
	function fn(i,j){
		while(arr[i].toUpperCase()===arr[j].toUpperCase() && arr[i]!==arr[j]){
			arr.splice(i,2);
			bool = true;
		}
		i++;
		j++;
		if(j<arr.length){
			fn(i,j);
		}else{
			 bool && handleArr(arr);
		}
	}
	fn(i,j);
	return arr.join('');
}


let result = handleArr(str.split(''));
console.log(result)			//结果:'caa'

最近完善的nodejs服务器框架,有兴趣的了解下,npm模块名:yu-server

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言