牛客-华为机试练习题(JS V8实现)

456 阅读1分钟

HJ1 字符串最后一个单词的长度

let input = readline();
let arr = input.split(' ');
console.info(arr.pop().length);

HJ2 计算某字母出现次数

先去除字符串中非字母内容

let input1 = readline();
let arr = input1.toLowerCase().replace('/[^A-Z]/g','').split('');
let input2 = readline().toLowerCase();
let res = 0;
for(let item of arr) {
    if(item === input2) res++;
}
console.info(res);

HJ11 数字颠倒

let input = readline();
console.info(input.split('').reverse().join(''));

HJ12 字符串反转

let input = readline();
console.info(input.split('').reverse().join(''));

HJ13 句子逆序

let input = readline();
console.info(input.split(' ').reverse().join(' '));

HJ31 单词倒排

只获取单词字母

let input = readline();
console.info(input.match(/[a-zA-Z]+/g).reverse().join(' '));

HJ106 字符逆序

let input = readline();
console.info(input.split('').reverse().join(''));

HJ97 记负均正

let len;
while (len = readline()) {
    len = parseInt(len);
    let inputArr = readline().split(' ');
    let lessNum = 0;
    let sum = 0;
    let sumNum = 0;
    for(let item of inputArr) {
        if(parseInt(item) > 0){
            sum += parseInt(item);
            sumNum++;
        }
        if(parseInt(item) < 0){
            lessNum++;
        }
    }
    console.info(lessNum, (sum/sumNum).toFixed(1));
}

HJ5 进制转换

let input;
while(input = readline()) {
    console.info(parseInt(input, 16));
}

HJ9 提取不重复的整数

let input = readline();
let res = '';
let map = {};
for(let i = input.length - 1; i >= 0; i--) {
    if(map[input[i]]){
        continue;
    }
    res = res + '' + input[i];
    map[input[i]] = true;
}
console.info(res);

HJ96 表示数字

let input;
while(input = readline()) {
    let res = input.replace(/[0-9]+/g, function(item) { 
        return '*'+item+'*';
    });
    console.info(res);
}

HJ73 计算日期到天数转换

let input = readline();
let [y, m ,d] = input.split(' ');
let sum = 0;
for(let i = 1; i < Number(m); i++) {
    sum += new Date(Number(y), i, 0).getDate();
}
console.info(sum + Number(d));