首页 > 携程前端笔试2020.8.15
头像
汤晓白_kaku
编辑于 2020-08-15 20:15
+ 关注

携程前端笔试2020.8.15

1.
k块a,b长度地砖,求铺成地砖的长度组合。
直接遍历push,去重排序,最后结果还需要注意输出格式
2.只过了70%。。
	
	
/*请完成下面这个函数,实现题目要求的功能
当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^
******************************开始写代码******************************/
function change(str) {
let temp = str.split('|');
temp = temp.map(item => {
return item.split('`').map(item2 => { return item2.split(',') });
})
return temp;
}
function findMax(res, tarr, t) {
t = t + Number(tarr[1]);
if (tarr[2][0] == 'END') {
return t;
}
let tempN = 0;
for (let j = 0; j < tarr[2].length; j++) {
tempN = tempN < findMax(res, res.find(item => { return item[0] == tarr[2][j] }), 0) ? findMax(res, res.find(item => { return item[0] == tarr[2][j] }), 0) : tempN;
}
return t + tempN;
}
/******************************结束写代码******************************/
var res;
// var _a = read_line();
_a = "HEAD`0`A,B,C|A`20`END|B`100`END|C`50`D,E|D`80`F|E`150`END|F`30`END"
res = change(_a);
var maxRes = findMax(res, res[0], 0);
console.log(maxRes)
/*
拆成类似数组,用递归来做
[
[ [ 'HEAD' ], [ '0' ], [ 'A', 'B', 'C' ] ],
[ [ 'A' ], [ '20' ], [ 'END' ] ],
[ [ 'B' ], [ '100' ], [ 'END' ] ],
[ [ 'C' ], [ '50' ], [ 'D', 'E' ] ],
[ [ 'D' ], [ '80' ], [ 'F' ] ],
[ [ 'E' ], [ '150' ], [ 'END' ] ],
[ [ 'F' ], [ '30' ], [ 'END' ] ]
]
200
*/


全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐