腾讯面试题笔试

腾讯前端面试题笔试

虽然已经有了offer,但还是很有幸的受邀参加腾讯前端的面试,很幸运,遇到一位很nice的大佬面试官,很有耐心的和我唠了很久,面试是用的腾讯会议远程,聊了很多,也向他请教了不少,前后加起来有4个小时了,是我经历的最长的一次面试了,下面是笔试部分的两道题,在这里记录下,分享给大家

1. 写代码用原生JS实现一个类似百度搜索框的自动完成控件,比如候选结果集arr=[‘aaa’, ‘abc’, ‘acc’, ‘dda’,…]; 用户输入’a’,下拉列表会出现以字母a开头的项’aaa’, ‘abc’, ‘acc’。要求,鼠标或键盘可以选中候选结果到输入框
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>1</title>
    <style>
        .li:hover{
            background-color: green;
        }
    </style>
</head>
<body>
    <div id="wrap">
        <input id="input" type="text" value="" oninput="inputChange(this)">
        <ul id="list"></ul>
    </div>
</body>
<script>
    let arr = ['aaa', 'abc', 'acc', 'dda','agc', 'dds','ana', 'rbc', 'hgc', 'dfa','ass', 'dys']
    let ul = document.getElementById("list")
    let input = document.getElementById("input")
    let result = []
    let active = 0
    // 输入时
    function inputChange(e) {    
        // get value
        if (e.value === '') {
            ul.innerHTML = ""
            return
        }
        result = arr.filter(function(item){
            return item[0] == e.value[0]
        })
        // remove
        ul.innerHTML = ""
        //add
        result.map(function(val,index){
            let li = document.createElement('li')
            li.innerHTML = val
            li.style.backgroundColor = 'white'
            li.setAttribute('class','li')
            // key words
            if (index === active) {
                li.style.backgroundColor = 'green'
            }
            // click
            li.addEventListener('click',function(){
                input.value = val
            })
            ul.appendChild(li)
        })
    }
    // 
    input.addEventListener('keydown',function(key){
        if (result.length > 0) {
            if (key.keyCode ===38 && active > 0) {
                active -= 1
                input.value = result[active]
            }else if (key.keyCode ===40 && active < result.length-1) {
                active += 1
                input.value = result[active]
            }
            // 
            let lis = ul.getElementsByClassName('li')
            for (let index = 0; index < result.length; index++) {
                const element = lis[index];
                element.style.backgroundColor = 'white'
                if (index === active) {
                    element.style.backgroundColor = 'green'
                }
            }
        }
    })
</script>
</html>
2. 实现超出整数存储范围的两个大正整数相加 function add(a, b) 。注意:参数 a 和 b 以及函数的返回值都是字符串。
// 2     数字转字符,按位相加
function add(a,b){
    let result = "" // 保存结果

    // 转数组
    number1 = a.split("")
    number2 = b.split("")

    // 进位结果
    car = false

    // length -> 0   && 进位结束   结束循环
    while( number1.length || number2.length ||  car ){

        //每一次将最后数字进行相加
        car += ~~number1.pop() + ~~number2.pop()

        // 取加法完的个位 进最终结果
        result = car % 10 + result

        // 进位判断
        car = car > 9
    }

    // 返回
    return result + ''
}

第一道题比较综合,我选择第二道题先快速解决,再慢慢调第一道题,最后还是都完成了,答案都是自己写的,有错误的望指正

再次感谢面试官大佬的耐心交流,比技术更美的是心灵美

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 腾讯android社招面试题除了要求基本的编程基础外,更加注重应聘者的思路和解决问题的能力。例如,有一道题目是让应聘者解决一个弹球游戏的碰撞问题,考察了应聘者对物理学原理的了解程度和建模思维的能力。而另外一道题则是要求应聘者自己设计一个数据结构,并出相关的代码,考察了应聘者对数据结构的掌握程度以及解决实际问题的能力。 此外,腾讯面试也注重应聘者的团队合作能力,例如会询问应聘者过往参与的项目经历以及其中的角色和职责。面试官还会关注应聘者平时的兴趣爱好和学习方式,看重自我发展和持续学习的态度。 总的来说,腾讯android社招面试注重应聘者的思考方式和解决问题的能力,希望应聘者能够在面试中展现出技术实力的同时也能够体现出比较全面的素质和团队合作技巧。 ### 回答2: 首先,我认为腾讯是一家非常优秀的公司,成熟的技术、稳定的业务、开放的文化及良好的薪酬待遇,这些都是我希望所在公司所具备的。当然,现如今,安卓技术在移动互联网领域已经越来越普及,所以我对腾讯Android社招面试也充满期待。 鉴于腾讯一贯的严谨和高要求,我认为其社招面试中会涉及到个人技能、团队协作能力、沟通能力及学习能力等,且可能会采用多种形式的测试与考核方式,如笔试、技术面试、项目经历考核等。而我会尽最大努力,从细节和思路等方面准备自己,积极展示自己的能力和素养,在适当的时候提问与反问,来表现出自己的个性魅力和职业素养。总之,我会以最好的状态去应对腾讯Android社招面试,尽我所能去展现自己,来赢得这个职位的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值