腾讯 9.16 前端开发岗笔试题

啥也不说了,和头条比起来,TX的编程题简直...好简单,感觉都不能叫算法题

js 直接撸,,,没啥算法,就数学思路,一路往下就行...完全不用考虑什么复杂度

代码很粗糙,因为想到哪儿写到哪儿,也没做优化,凑合着看一看吧 - -
// 第一题 ---------------------------

        var n = parseInt(readline());

        var ans = 0;

        for(var i = 0;i  n; i++){

            var num = readline(); // 读取的数字

            var numArr = num.toString().split(''); // 变成数组

            numArr.forEach(function(ele, index) {

                numArr[index] = parseInt(ele);

            }); // 变成数字

            var total = numArr.reduce(function(total, pre) {

                return total + pre;

            }, 0); // 求和

            if (parseInt(num) % total === 0) {

                console.log('Yes');

            } else {

                console.log('No');

            }

        }

        // 第二题 --------------------------

        var n = parseInt(readline());

        var ans = 0;

        var res = 1;

        var arr = readline().split('  ');

        var str = arr.join('');

        str = str.replace(/\b0+/,'');

        str = str.replace(/0+\b/,''); // 去掉前后的0

        if (str.length  1) {

            console.log(1); // 只有一个坚果,那就不掰

        } else {

            var temp = str.split('1'); 

            temp.forEach(function(ele) {

                var len = ele.length;

                if (len !== 0 ) {

                    res *= (len +1)

                }

            });

            console.log(res);

        }

        // 第三题 ---------------------------

        var str = readline(); // 源

        var target = readline(); // 目标

        var tarlen = target.length; // 目标子串的长度

        var arr = [];

        var index = str.indexOf(target, 0);

        while(index != -1) {

            arr.push([index, index + tarlen]); // 把集合区间push进去

            index = str.indexOf(target, index + 1);

        }

        var res = 0;

        for (var i = 0; i  arr.length - 1; i++) {
            
            if (arr[i][1] >= arr[i+1][0]) {

                arr[i + 1][0] = arr[i][0];

                arr[i][0] = arr[i][1] = 0;

            }

        }

        for (var i = 0; i  arr.length; i++) {

            res += (arr[i][1] - arr[i][0]) * (arr[i][1] - arr[i][0]);

        }

        console.log(res);        

#腾讯##前端#
全部评论
头条AC0.5的我在腾讯的笔试题找回了自信。
点赞 回复 分享
发布于 2018-09-16 16:34
// 第二题 let str = readline().replace(/\s/g, ''); str = str.replace(/^0*|0*$/g, ''); const manny = str.match(/10+/g) && str.match(/10+/g).map(item => item.length).reduce((red, item) => red * item, 1) || 1; console.log(many); // 第三题没什么思路,感觉也可以用正则
点赞 回复 分享
发布于 2018-09-16 16:46
666
点赞 回复 分享
发布于 2018-09-16 16:32
前排膜拜大佬,能说说第二第三题的思路吗?
点赞 回复 分享
发布于 2018-09-16 16:34
居然思路都是差不多的。。。。。
点赞 回复 分享
发布于 2018-09-16 16:35
那个readline函数只有在node的环境下才能用吗,我都没见过···,完蛋了
点赞 回复 分享
发布于 2018-09-16 16:42
第三题把 求和 看成了 求最大值 好气啊!!!!
点赞 回复 分享
发布于 2018-09-16 16:48
虽然不是算法题,规律找不到一样不会😭
点赞 回复 分享
发布于 2018-09-16 16:51

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
CrazyBucket:我今天下午也做梦在招聘会上面试一家小厂,给自己气笑了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
点赞 27 评论
分享
牛客网
牛客企业服务