5.15微众银行前端实习笔试

笔试题型:55分选择题,45分问答题

问答题就是三道编程题,但是问答题自然是无法使用编译器的,真·手写代码

之所以特意写一篇帖子就是想问一下,一般这种编程题放到问答题是什么心态呀,他不方便改,我也不方便写,虽说可以考验我debug能力或者对API的熟练度,但是这么多卷子他们真的会去改吗,我有bug他们真的看得出来吗。。

然后帖一下三道问答题吧:
// 1.数组转树,笔试的时候少写了异步map.get()为空的判断
const nodes = [{id:1,parentId:null,name:'广东'},{id:2,parentId:1,name:'深圳'},{id:3,parentId:1,name:'杭州'}]
function transformTree(nodes){
    let map = new Map()
    let root = null
    
    for(let i=0;i<nodes.length;i++){
        // 记下parentId对应的结点数组
        if(nodes[i].parentId == null){
            root = nodes[i]
            continue
        }
        let list = map.get(nodes[i].parentId)?map.get(nodes[i].parentId):new Array()
        list.push(nodes[i])
        map.set(nodes[i].parentId,list)
    }
    // 找到对应父亲id的结点们
    const deepSearch = function(id){
        let arr = []
        if(!map.get(id)) return
        for(let x of map.get(id)){
            let obj = {}
            obj.id = x.id
            obj.name = x.name
            // obj.children = deepSearch(x.id)
            arr.push(obj)
        }
        return arr
    }
    let rootObj =  {}
    rootObj.id = root.id
    rootObj.name = root.name
    rootObj.children = deepSearch(root.id)
    return rootObj    
}
console.log(transformTree(nodes))
// 2.数组去重,笔试的时候有一个数组名arr没改回来,JSON.stringify写成了stringly哈哈,并且这里要用toString()才对的上样例,不过很扯,{a:1}==={a:2}?[1,2,3]==="1,2,3"?
// in :[123,"webank",[1,2,3],"123",{a:1},"tencent",123,[1,2,3],{a:2}]
// out:[123,"webank",[1,2,3],"123",{a:1},"tencent"]
// 关键点,数组与对象的去重,笔试的时候采取了Json.stringify()转换存储,好像应该用toString()方法
let initArr = [123,"webank",[1,2,3],"123",{a:1},"tencent",123,[1,2,3],{a:2}]
function deal(arr){
    let map = new Map()
    let newArr = []
    for(let i=0;i<arr.length;i++){
        let x = typeof arr[i] == 'object'?arr[i].toString():arr[i]
        if(map.get(x))  continue    //map里存在了,不操作
        map.set(x,1)
        newArr.push(arr[i])
    }
    return newArr
}
let newArr = deal(initArr)
console.log(newArr)
// 3.求两个日期中间的有效日期,笔试的时候for的一个;手抖写成了:,monthArr的声明没写成let,习惯性写了const
// in:2020-9-29,2020-10-3
// out:['2020-9-29','2020-9-30','2020-10-1','2020-10-2','2020-10-3']
// 这里采用模拟的形式,Date()类的API有点忘了,不知道能不能直接通过API实现
function deal(dateA,dateB){
    let ansArr = []
    let [yearA,monthA,dayA] = dateA.split('-')
    yearA=parseInt(yearA); monthA=parseInt(monthA);dayA=parseInt(dayA);
    let [yearB,monthB,dayB] = dateB.split('-')
    yearB=parseInt(yearB); monthB=parseInt(monthB);dayB=parseInt(dayB);
    for(let year=yearA;year<=yearB;year++){
        let monthArr = []
        if((year%4==0 && year%100!=0) || (year%400==0)) monthArr=[31,29,31,30,31,30,31,31,30,31,30,31]  //闰年
        else    monthArr=[31,28,31,30,31,30,31,31,30,31,30,31]  //非闰年
        let monthStart = year==yearA?monthA:1   //与起始年同一年就按给定的起始月走,否则从1月开始走
        let monthEnd = year==yearB?monthB:12    //与结尾年同一年就按给定的最终月走,否则走到12月
        for(let month=monthStart;month<=monthEnd;month++){
            let dayStart = (year==yearA&&month==monthA)?dayA:1  //与起始年月都相同就按给定的天走,否则从1号开始走
            let dayEnd = (year==yearB&&month==monthB)?dayB:monthArr[month-1]    //与结尾年月都相同就按给定的天结束,否则走到月底
            for(let day=dayStart;day<=dayEnd;day++){
                let date = `${year}-${month}-${day}`
                ansArr.push(date)
            }
        }
    }
    return ansArr
}
let dateArr = deal("2020-9-29","2020-10-3")
console.log(dateArr)





#微众银行实习生招聘##实习##笔试题目##前端##微众银行#
全部评论
9月的我发现题目都没变…
5 回复 分享
发布于 2022-09-13 21:10 湖北
刚刚笔试完,题都不带变的
1 回复 分享
发布于 2022-09-13 21:35 北京
手写代码真的离谱😂 笔试太简单了让我怀疑根本不打算招人
点赞 回复 分享
发布于 2022-05-16 00:23

相关推荐

渴望wlb的牛油果很...:直说卡第一学历不就行了 非得拐弯抹角
点赞 评论 收藏
分享
emmm别问我为啥上一条帖子隔了两个月我才开始投简历和拿offer,因为我懒😰简单流程如下:周一凌晨改好的简历,然后到处乱投简历;周二接到了三维家的一面通知,临时抱佛脚的背了一些八股;周三上午一面下午通知第二天hr面;周四上午hr面下午拿offer,遂收手支线:在BOSS上顺手投了几个大厂,投字节的时候不小心投城客户端了,结果过了一天HR突然把我简历要走了,还问我能不能整客户端,我直接一口答应(脏面评警告😢)结果在周三下午的时候给我打电话,说前端有空缺实习岗,问我有没有兴趣,然后就跟我约了周四下午一面😰我都没咋准备啊,咩都不会啊😭结果周四下午面完,晚上打电话通知过一面了,赶紧把二面约在下周一下午,留点缓冲时间。逆大天了,我一半的问题都不会,他居然给我过了?运气未免有点好了😥现在正在恶补计网、网安、性能优化的东西(这三大板块我是几乎一点不会,一面几乎一点答不出来,加上我又没怎么背八股,这块被干烂了😵)心得体会与经验:1.&nbsp;我giao怎么这么快就结束了,我还以为要找好久😨2.&nbsp;大厂的面试问题真的和中厂小厂很大不同,比如在三维家我能自己吹水到vue的数据劫持、Proxy代理响应式之类的他们就觉得很不错了,但是在字节你但凡敢提到一下就会追问你细节了,一追问马脚就全漏出来了3.&nbsp;有信心真的很重要,我感觉我能拿中厂offer最重要的就是吹水吹出自信来了,以至于三维家面试反问面试官有哪里还需要改进的时候,他就说很不错了解的很多😦4.&nbsp;理解很重要,我从头到尾真没背过很多八股,不过有一些知识确实是敲过代码验证过,所以面试的时候能吹水吹得出来😇想了解面经啥的可以直接评论区问我,但我可能也说不全,因为我没有记录,而且今天摆了一天感觉记忆快清空了😵下面是故事时间:我暑假刚开始的时候才开始准备八股,印象很深那个时候连什么原型、事件循环、闭包这些名词都没听过,资料也不知道怎么找,就一直零零散散的准备,感觉也只有js稍微背了一下八股,其他很多时候都是靠完全理解和手写熟悉一些机制的,但这样做效率很低,反正准备了一个多星期半个月就开摆了😭结果一摆就摆到了开学,笔记是乱七八糟的,八股是忘光光的,简历是一直没改的,实习也是一直没投过的。直到上周日晚上偶然和师兄聊天,他突然问我“你怎么还不找实习”,那天晚上才幡然醒悟,是时候做点事情了😡然后就按照上面描述的来走了。其实我感觉我从头到尾都没背特别多八股,也没怎么找刷题资料啥的,早期就是翻尚硅谷或者黑马的入门视频从头学起,中期用面试鸭看了一点点题,主要是在学js机制和敲js代码,后期才发现了w3c的面经网站,然后在那里看着学(那个时候已经懒得敲了,因为有些问题与代码感觉不像是给找实习的看的,忒细了点😂)接下来继续准备字节二面吧,虽然几乎没啥可能可以通过,但是万一有奇迹呢?😍😍😍也祝大家能够早日拿到心仪的offer
我的offer呢😡:我已经预见10天后你会发,节孝子启动了
投递三维家等公司10个岗位
点赞 评论 收藏
分享
评论
7
47
分享

创作者周榜

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