9.20字节跳动前端笔试第五场

第一题,生兔子问题。使用动态规划,斐波那契就可以得到,核心代码:

var rabbit = [1,1]
for(let i=2;i<=month;i++){
    rabbit[i] = rabbit[i-1] + rabbit[i-2]
}
return rabbit[month]

第二题,看到讨论区好多大佬都用的是KMP,我当时没写出来。刚才试了一段代码:
var myTest = function (str) {
    const len = str.length;
    for (let t = 1; t <= len / 2; t++) {
        // 从零开始  一个一个进行截取
        const item = str.slice(0, t);
        // 算出重复多少次才能够得到原本的字符串
        const count = len / item.length;
        if (Number.isInteger(count) && item.repeat(count) === str) {
            return item
        }
    }
    // 未找到 返回
    return str
}

自测,一万长度的字符串可以输出,耗时0.168s。但题目好像要求的是字符串长度最大1e8,求大佬给个KMP求解的题解。


第三题,计算器。死在了大叔计算,毕竟JavaScript里面精度问题和大数计算是个bug,最近虽然已经确认```BigInt可以直接使用,但是V12还不支持。

对于快速幂计算,没写出来。

#笔试题目##字节跳动#
全部评论
快速幂计算https://blog.csdn.net/sinat_39416814/article/details/108700773
1 回复 分享
发布于 2020-09-21 10:31
二面刚结束、自我感觉良好
点赞 回复 分享
发布于 2020-09-25 19:45
已经感谢信了呜呜呜,各位谁有面试通知的吗
点赞 回复 分享
发布于 2020-09-24 01:34
第一题是全a吗,为啥我只有60%
点赞 回复 分享
发布于 2020-09-21 17:21
function multiplication(num1, num2) {   let pow = Math.pow(10, 9) + 7   return ((num1 % pow) * (num2 % pow)) % pow } function power(num1, num2) {   if (num2 == 0) return 1   if (num2 == 1) return num1   if (map.has(num2)) {     return map.get(num2)   }   let index =  Math.floor(num2 / 2)   let res = multiplication(power(num1, index), power(num1, num2 - index))   map.set(num2, res)   return res } 可以这样解吗?虽然最后0%,最后的那个测试用例有问题。可以帮我看看吗?
点赞 回复 分享
发布于 2020-09-21 10:57
第三题,快速幂取模:(a^b) mod c = (a * a * a........)%c =  ((a%c)*(a%c)*(a%c)*.........)%c = (a%c)^b %c
点赞 回复 分享
发布于 2020-09-21 10:23

相关推荐

不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
05-30 18:54
武汉商学院 Java
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
小鸡蛋吃布丁:上岸编制,考个偏远的四五线小县城的话那确实难度不高,工资三四千的,但是考发达地区的纯看实力和运气了
点赞 评论 收藏
分享
评论
点赞
9
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务