首页 > 拼多多前端二面
头像
刀剑丛中闯
编辑于 2021-05-16 12:32
+ 关注

拼多多前端二面

5.16 今天下面主管面,来复盘下
u1s1面试体验是真的不错,
首先是自我介绍
性能优化,这里有个点,css内联,以前从来没听过,我了解的比较少这方面,然后面试官就解释说了一些
中间有些女生在那边说话巨吵....我都觉得面试官没听清我说什么,因为我听到的是那边的吵闹声太大声了,面试官看了好几眼那边😂感觉脸色都不好
基本上就是从性能优化里面发散出来的问题
这里就问了挺多的,但是我可能回答的不在点上,他就打断我说别的了,最后说一面肯定问过基础了那就做题吧
这里的性能优化是首屏白屏时间那些,这个了解但是确实不是很清楚,一些计算概念还需要再看看 = =
做题: 
1.刚开始面试就写了一个动画,我都忘记animation咋写,大概写了一下就过了
2.有一个[1,100]的线段,随机生成10个1-100的线段,求他们映射到这个线段的长度,我把它处理成了合并区间,面试官说思路是对的,暴力解法差不多就这样,但是代码风格要注意😂应该把两步分开写,我说我一般都放在一个函数,写完了再看需不需要优化;
  生成上10个线段直接处理成区间合并,leetcode原题那个
3.中文数字转换成阿拉伯数字,没get到点是真的菜,我想的是找他们的单位,然后乘各自的单位,面试官说是可以的,但是其实只有十百千万亿的单位,分成三组就可以了,我当时真的脑子what了,话到嘴边还是没有写出来,面试官说没事,就差不多结束了,其实才45分钟😂,最后还是结束了,然后面试官说其实拼多多没有外界传闻的那样~
//这个我还是觉得挺难的,去查了下有个写的比较好的改了点,只能小于9999 0000 0000
function chineseToNumber(str) {
    let chineseNumber = { 零: 0, 一: 1, 二: 2, 三: 3, 四: 4, 五: 5, 六: 6, 七: 7, 八: 8, 九: 9}
    let unitNumber = {
        十: { value: 10, secUnit: false },
        百: { value: 100, secUnit: false },
        千: { value: 1000, secUnit: false },
        万: { value: 10000, secUnit: true },
        亿: { value: 100000000, secUnit: true }
    }
    if(str.length < 2) {
        return chineseNumber[str[0]]
    }
    //结果,当前字符对应的数,当前四位组对应的数,
    let res = 0, tempNumber = 0, sectionNumber = 0
    let num, tempUnit //当前字符对应的数字,当前字符对应的单位
    for(let i = 0; i < str.length; i++) {
        num = chineseNumber[str[i]]
        if(typeof num !== 'undefined') {
            //遇到的是数
            tempNumber = num
            //最后一位数
            if(i === str.length - 1) {
                sectionNumber += tempNumber
            }
        }else {
            //遇到的是单位
            tempUnit = unitNumber[str[i]]
            if (typeof tempUnit == 'undefined') { return false; }
            let value = tempUnit.value
            let unit = tempUnit.secUnit
            if(unit) {
                //是万以上的单位
                sectionNumber = (sectionNumber + tempNumber) * value
                //更新结果
                res += sectionNumber
                sectionNumber = 0
            }else {
                //是最后四位
                sectionNumber += (tempNumber * value)
            }
            tempNumber = 0
        }
    }
    return res + sectionNumber
}
console.log(chineseToNumber('八十八亿八十八万八千八百八十八'))//8800888888


全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐