【华为机试真题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分钟的时限) 机考分数线根据招聘目标院校和非目标院校有不同(不同 华为招聘部门会有差异)
写在最后
创作不易!
如果有错误,请在评论区指出,我会及时更改!
