携程前端笔试交流
发布于 2017-09-21 20:40 2291 次浏览 0 赞 来自 笔试面试  


第二题:JSON Key转化为大写

求大神分享一下,这个题楼主只能AC 50%;主要不知道错在哪,求大神分享全AC代码

第三题:二叉树遍历(从层次遍历转为前序遍历)

这个没通过,楼主最后二叉树遍历的时候傻了

3 条回复

第三题,用的比较笨的方法。

先建立树:

var rs = [];
var d = 1;
for(var i = 0;i < tree.length;i++){
	var le = [];
	for(var j = 0;j < d && i < tree.length;j++){
		le.push(tree[i]);
		i++
	}
	rs.push(le);
	i--;
	d *= 2;
}

然后在遍历树:

var printarr = [];
find(rs,0,0);

function find(arr,x1,x2){
    if(!(x1 < arr.length && x2 < arr[x1].length))
        return;
	if(arr[x1][x2])
        printarr.push(arr[x1][x2]);
    if((x1+1) < arr.length && arr[x1 + 1][x2 * 2])
        find(arr,x1 + 1,x2 * 2);
    if((x1+1) < arr.length && arr[x1 + 1][x2 * 2  + 1])
        find(arr,x1 + 1,x2 * 2 + 1);
        
}

效率不高但是AC了

2017-09-21 20:50
1

JSON那题直接用正则表达式

return data.replace(/[^:]"([a-z])/g, function($1){return $1.toUpperCase()});


2017-09-21 20:53
coder_eqVsN3Eh 回复 coder_H6GN93KY

正则不能AC啊

2017-09-21 21:50
添加回复
回到顶部