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) 回帖