奇安信笔试编程题-前端

奇安信笔试,前端岗,编程题挺简单的。。。
1.求极大值,就数学概念上的极大值,没啥难度
const nums = read_line().split(' ').map(Number);
let arr = [];
for (let i = 1; i < nums.length-1; i++) {
    if (nums[i] >= nums[i + 1] && nums[i] >= nums[i - 1]) {
        arr.push(nums[i]);
    }
}
if (arr.length) {
    console.log(arr.join(' '));
} else {
    console.log('-');
}
题意里面极大值的存在条件是长度大于等于3,代码直接从1开始到length-1遍历了,最后判断有没有极大值,确定输出格式!

2.正整数的中文表示,输入范围(0,100000),需要格式判断,如‘a123’,输出错误,正常情况返回中文表示,如10080,输出一万零八十。
const arr = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
const w = ['', '十', '百', '千', '万'];
let str = read_line(), num = Number(str);
if (str != num.toString() || num >= 100000 || num <= 0) {
    console.log('错误输入');
} else {
    let res = '',
        flag = false;// 判断中间是否存在0
    str.split('').map(Number).reverse().forEach((el, i) => {
        if (i == 0) {
            if (el != '0') {
                res = arr[el];
            }
        } else {
            if (el != 0) {
                res = `${arr[el]}${w[i]}${flag ? '零' : ''}${res}`;
                flag = false;
            } else {
                flag = true;
            }
        }
    });
    // 没处理最后几位是不是0的情况,最后是0就删除
    res = res[res.length - 1] == '零' ? res.slice(0, res.length - 1) : res;
    console.log(res);
}
第二题感觉还是蛮有意思的,我这个处理的可能不太好!
#奇安信##笔试题目##前端工程师#
全部评论
求第一题
点赞 回复
分享
发布于 2019-10-12 20:31
奇安信开发岗笔试题是真的考验心态😖😖
点赞 回复
分享
发布于 2019-10-12 20:34
联想
校招火热招聘中
官网直投
我的第一题是你的第二题
点赞 回复
分享
发布于 2019-10-12 20:44
转中文那个一直90%。。
点赞 回复
分享
发布于 2019-10-12 21:04
就两个题?
点赞 回复
分享
发布于 2020-06-17 22:41

相关推荐

3 39 评论
分享
牛客网
牛客企业服务