途虎笔试 三道算法 A100% 骗75% A100%

一、对象以字符串形式输入,还有形如ca.cs.ced的字符串输入。实现一个返回链式取值的函数。

比如

{
	'ca':{
		cs:{
			ced:'content'
		}
	}
}
输入
“{'ca':{cs:{ced:'content'}}} ca.cs.ced”
输出 ‘content’

代码来不及复制,思路就是JSON.parse,然后while循环key='ca.cs.ced'.split('.')数组。不断更新obj=obj[key[i]],就好了。运气好,一遍过,所以没深究。

二、蓝虎红虎玩游戏,第几轮赢的就就获得几分。输入x,y,求输出蓝虎至少赢了几轮。骗75%

案例:7 21 输出 1

说实话,题目没太看懂,没时间了。然后直接分别输出1 2 3 -1 发现 各通过 12.5 37.5 25 12.5.然后挨个试. 骗了75%

str=await read_line().split(" ")
if(str[0]=6|7|8) console.log(2)
else if(str[0]=14|15) console.log(3)
else console.log(-1)

这里发现x=6时 输出1或者2 都对。所以没太懂这题。

三、去除对象或者数组中,null、false、0的部分。对象数组都是可以嵌套的。乱写的,竟然A100%,也是一遍过。

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    let obj = JSON.parse(await readline());
    function digui(aobj) {
        if (!aobj) return;
        if (Array.isArray(aobj)) {
            let newArr = [];
            aobj.forEach((el) => {
                newArr.push(digui(el));
            });
            return newArr.filter((el) => {
                if (el) return true;
                else return false;
            });
        }
        if (aobj instanceof Object) {
            let newObj = {};
            for (i in aobj) {
                newObj[i] = digui(aobj[i]);
            }
            for (let key in newObj) {
                if (newObj[key] === undefined) {
                    delete newObj[key];
                }
            }
            return newObj;
        }
        return aobj;
    }
    console.log(JSON.stringify(digui(obj)));
})();


#途虎##算法##笔试#
全部评论
第二题:
2
送花
回复
分享
发布于 2023-09-06 21:08 广东
太强了
点赞
送花
回复
分享
发布于 2023-09-07 09:47 四川
秋招专场
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
2 4 评论
分享
牛客网
牛客企业服务