【华为机试真题JavaScript】非严格递增连续数字序列

题目描述

输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列长度。比如:12234属于非严格递增数字序列。

输入描述

abc2234019A334bc

输出描述

4

说明:2234为最长的非严格递增连续数字序列,所以长度为4

参考代码

function noStrictDigit(str) {
    let dp = new Array(str.length).fill(1);
    let arr = str.split().map(n => parseInt(n));
    for (let i = 0; i <arr.length; i++) {
        if (isNaN(arr[i])) {
            continue;
        } else {
            if (arr[i] === arr[i-1]  || arr[i] === (arr[i-1] + 1) ) {
                dp[i] = dp[i-1] + 1;
            }
        }
    }
    console.log(dp.sort()[dp.length - 1]);

}

noStrictDigit(abc2234019A334bc);

机试介绍

三道中等难度题目,总分400分,前两道均为100分,后一道为200分,每道题的时间限制为1S(常规算法解答不出,可以用暴力方法) 机考分数是按照题目用例的通过数量的比例算分数 (若最后一道题做不出来,可将边界情况结果等写出来 ) 机考时长2个半小时,若以冲刺机考最高分为目的,则做题时间分配前两道题40分钟,最后一题70分钟(平时练习可以按照40分钟的时限) 机考分数线根据招聘目标院校和非目标院校有不同(不同 华为招聘部门会有差异)

写在最后

创作不易!

如果有错误,请在评论区指出,我会及时更改!

经验分享 程序员 微信小程序 职场和发展