腾讯云前端一面面经

算法题

大数相加

代码

function addBigNum(str1, str2){
    let res = '',
        c = 0;
    const str1Arr = str1.split(''),
        str2Arr = str2.split('');
    while(str1Arr.length || str2Arr.length || c){
        const num1 = str1Arr.length ? str1Arr.pop() : 0,
              num2 = str2Arr.length ? str2Arr.pop() : 0;
        c += num1 + num2;
        res = (c % 10) + res;
        c = c > 9;
    }
    return res.replace(/^0+/,'');
}

最大子序和

给定一个数组,找到一个具有最大和的连续子数组,返回其最大和。示例如下
输入:

1,-2,4,5,-1,1

输出:

9

最大子数组:

[4,5]

代码

function largestSum(arr) {
    if (!arr) return null;
    const len = arr.length;
    if (!len) return Number.MIN_SAFE_INTEGER;
    let sum = arr[0];
    let res = sum;
    for (let i = 1; i < len; i++) {
        if (sum < 0) sum = arr[i];
        else sum = sum + arr[i];
        res = Math.max(res, sum);
    }
    return res;
}

console.log(largestSum([1,2,4,5,-1,1]));

子字符串匹配

给定两个字符串 s 和 t,其中 t 是 s 的子字符串。s的子字符串是字符都取自s,并且保持在s中的位置的相对顺序,但不需要是连续的。比如,s="abcdef",t="bd"。

要求找出 t 在 s 中匹配的子字符串数量。

比如:

Input: s = "rabbbit", t = "rabbit"
Output: 3
Explanation:
As shown below, there are 3 ways you can generate "rabbit" from S.
rabbbit rabbbit rabbbit

[输入]

"babgbag" "bag"

[输出]

5

[输入]

"rabbbit" "rabbit"

[输出]

3

[输入]

"xslledayhxhadmctrliaxqpokyezcfhzaskeykchkmhpyjipxtsuljkwkovmvelvwxzwieeuqnjozrfwmzsylcwvsthnxujvrkszqwtglewkycikdaiocglwzukwovsghkhyidevhbgffoqkpabthmqihcfxxzdejletqjoxmwftlxfcxgxgvpperwbqvhxgsbbkmphyomtbjzdjhcrcsggleiczpbfjcgtpycpmrjnckslrwduqlccqmgrdhxolfjafmsrfdghnatexyanldrdpxvvgujsztuffoymrfteholgonuaqndinadtumnuhkboyzaqguwqijwxxszngextfcozpetyownmyneehdwqmtpjloztswmzzdzqhuoxrblppqvyvsqhnhryvqsqogpnlqfulurexdtovqpqkfxxnqykgscxaskmksivoazlducanrqxynxlgvwonalpsyddqmaemcrrwvrjmjjnygyebwtqxehrclwsxzylbqexnxjcgspeynlbmetlkacnnbhmaizbadynajpibepbuacggxrqavfnwpcwxbzxfymhjcslghmajrirqzjqxpgtgisfjreqrqabssobbadmtmdknmakdigjqyqcruujlwmfoagrckdwyiglviyyrekjealvvigiesnvuumxgsveadrxlpwetioxibtdjblowblqvzpbrmhupyrdophjxvhgzclidzybajuxllacyhyphssvhcffxonysahvzhzbttyeeyiefhunbokiqrpqfcoxdxvefugapeevdoakxwzykmhbdytjbhigffkmbqmqxsoaiomgmmgwapzdosorcxxhejvgajyzdmzlcntqbapbpofdjtulstuzdrffafedufqwsknumcxbschdybosxkrabyfdejgyozwillcxpcaiehlelczioskqtptzaczobvyojdlyflilvwqgyrqmjaeepydrcchfyftjighntqzo... "rwmimatmhydhbujebqehjprrwfkoebcxxqfktayaaeheys"

[输出]

543744000

代码,注释部分未优化路径,

// function searchWord(s, t) {
//     const sLen = s.length, tLen = t.length;
//     const dp = new Array(sLen + 1);
//     for (let i = 0; i <= sLen; i++) {
//         dp[i] = new Array(tLen + 1).fill(0);
//     }
//     dp[0][0] = 1;
//     for (let i = 1; i <= sLen; i++) {
//         dp[i][0] = 1;
//         for (let j = 1; j <= tLen; j++) {
//             if (s[i - 1] === t[j - 1]) {
//                 dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
//             } else {
//                 dp[i][j] = dp[i - 1][j];
//             }
//         }
//     }
//     return dp[sLen][tLen];
// }
function searchWord(s, t) {
    const sLen = s.length, tLen = t.length;
    const dp = new Array(tLen + 1).fill(0);
    dp[0] = 1;
    for (let i = 1; i <= sLen; i++) {
        let pre = 1;
        for (let j = 1; j <= tLen; j++) {
            let temp = dp[j];
            if (s[i - 1] === t[j - 1]) {
                dp[j] += pre;
            }
            pre = temp;
        }
    }
    return dp[tLen];
}
const s = "rabit", t = "rabbit";
console.log(searchWord(s, t));

框架

Vue响应式原理

Vue双向绑定

计算机网络

HTTP缓存

TCP四次挥手

如何实现axios

XSS是什么,怎么预防

#面经##腾讯##前端工程师#
全部评论
秒啊,我腾讯云一面也是这三道题,是个态度很差的女面试官,最后也被kpi了
点赞 回复 分享
发布于 2021-10-06 21:43
大佬可以分享一下自己的项目经历吗
点赞 回复 分享
发布于 2021-09-26 21:53
楼主什么部门啊
点赞 回复 分享
发布于 2021-09-14 23:46
你还在投简历啊
点赞 回复 分享
发布于 2021-09-11 03:30
又见大佬!算法题也太多了吧🥲
点赞 回复 分享
发布于 2021-09-01 20:58
腾讯算法题不少啊
点赞 回复 分享
发布于 2021-09-01 18:23

相关推荐

1.手撕:数组中第k个最大元素2.浏览器拿到HTML响应之后,渲染页面过程3.CSS&nbsp;是什么时候加载的?是等&nbsp;DOM&nbsp;树构建完才开始吗4.HTML&nbsp;解析过程中碰到一个&nbsp;&lt;script&gt;&nbsp;标签,浏览器会怎么处理5.你刚才提到MutationObserver,那如果浏览器不支持这个&nbsp;API,你会用什么方式实现类似功能6.我们看这一段代码:图1&nbsp;这段代码打印的结果是什么?为什么不是local?7.如果我把刚才那个var&nbsp;name&nbsp;=&nbsp;'local'&nbsp;改成let,那输出结果会变吗8.解释一下什么是“暂时性死区”为什么let声明变量之前不能访问9.讲一下js的作用域有哪几种10.我们现在有一个全局变量是&nbsp;let&nbsp;a&nbsp;=&nbsp;1,页面上有个按钮绑定了一个&nbsp;onclick&nbsp;事件打印&nbsp;a,我把&nbsp;a&nbsp;从浏览器控制台删掉了,会报错吗?为什么11.讲一下作用域链,为什么在try-catch&nbsp;里&nbsp;catch(err)&nbsp;中的&nbsp;err&nbsp;是块级作用域,但try里不是?12.&nbsp;果我有一个变量在&nbsp;setTimeout&nbsp;里修改了值,而外部同时访问这个值,能保证拿到最新值吗为什么13.我给你两个连续的style标签,里面写了两个相同选择器但不同样式,渲染时到底谁生效?为什么?14.如果我动态用innerHTML插入一段&nbsp;&lt;script&gt;,它会执行吗?和用createElement的方式插入有什么不同15.我页面上用了iframe做内嵌组件,结果一个按钮点击事件怎么都监听不到,为什么16.讲讲webpack的loader和plugin的执行顺序17.react&nbsp;的&nbsp;useEffect&nbsp;和&nbsp;useLayoutEffect&nbsp;有什么区别?哪个先执行18.&nbsp;vue&nbsp;的响应式是怎么实现的?那我问你,Object.defineProperty&nbsp;为什么不能监听数组的&nbsp;push?Vue2&nbsp;是怎么解决的19.如果我在页面里创建了一个超大的数组&nbsp;new&nbsp;Array(1e9),但没赋值,也不访问,浏览器会卡死吗20.我页面上只放了&nbsp;1&nbsp;张图,但&nbsp;Lighthouse&nbsp;跑出来提示资源加载过大,啥原因?
查看20道真题和解析
点赞 评论 收藏
分享
10-31 01:52
已编辑
门头沟学院 前端工程师
查看10道真题和解析
点赞 评论 收藏
分享
评论
10
61
分享

创作者周榜

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