HJ6 质数因子

let num = parseInt(readline())
let arr = []
for (let i=2; i*i<=num; i++) {       // 使用 i*i 判断可以降低复杂度,使用 i<=num 可能会超时while (num%i == 0) {num /= iarr.push(i)}
}
if (num > 1) arr.push(num)
let result = arr.join(' ') + ' '
console.log(result)

HJ8 合并表记录

let n = parseInt(readline())
let obj = {}
for (let i=0; i<n; i++) {let arr = readline().split(' ')let key = arr[0], value = arr[1]if (!obj[key]) {obj[key] = parseInt(value)} else {obj[key] = obj[key] + parseInt(value)}
}
for (let i in obj) {console.log(i + ' ' +obj[i] + ' ')
}

HJ9 提取不重复的整数

let str = readline()
let arr = str.split('').reverse()            // 转数组后倒序
let uniqueArr = Array.from(new Set(arr))   // 利用 set 去重
console.log(uniqueArr.join(''))               // 数组 join 连接后作为字符串输出

HJ31 单词倒排【字符串】【排序】

描述
对字符串中的所有单词进行倒排。

说明:

  1. 构成单词的字符只有26个大写或小写英文字母;
  2. 非构成单词的字符均视为单词间隔符;
  3. 要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
  4. 每个单词最长20个字母;

数据范围:字符串长度满足

输入描述:
输入一行以空格来分隔的句子
输出描述:
输出句子的逆序

题解:

let str = readline()
let arr = str.split(/[^a-zA-Z]/) //使用正则分割字符串
console.log(arr.reverse().join(' '))

HJ66 配置文件恢复

描述
有6条配置命令,它们执行的结果分别是:

命 令 执 行
reset reset what
reset board board fault
board add where to add
board delete no board at all
reboot backplane impossible
backplane abort install first
he he unknown command
注意:he he不是命令。

为了简化输入,方便用户,以“最短唯一匹配原则”匹配:
1、若只输入一字串,则只匹配一个关键字的命令行。例如输入:r,根据该规则,匹配命令reset,执行结果为:reset what;输入:res,根据该规则,匹配命令reset,执行结果为:reset what;
2、若只输入一字串,但匹配命令有两个关键字,则匹配失败。例如输入:reb,可以找到命令reboot backpalne,但是该命令有两个关键词,所有匹配失败,执行结果为:unknown command
3、若输入两字串,则先匹配第一关键字,如果有匹配,继续匹配第二关键字,如果仍不唯一,匹配失败。
例如输入:r b,找到匹配命令reset board 和 reboot backplane,执行结果为:unknown command。
例如输入:b a,无法确定是命令board add还是backplane abort,匹配失败。
4、若输入两字串,则先匹配第一关键字,如果有匹配,继续匹配第二关键字,如果唯一,匹配成功。例如输入:bo a,确定是命令board add,匹配成功。
5、若输入两字串,第一关键字匹配成功,则匹配第二关键字,若无匹配,失败。例如输入:b addr,无法匹配到相应的命令,所以执行结果为:unknow command。
6、若匹配失败,打印“unknown command”

注意:有多组输入。
数据范围:数据组数:,字符串长度
进阶:时间复杂度:,空间复杂度:
输入描述:
多行字符串,每行字符串一条命令

输出描述:
执行结果,每条命令输出一行
题解:

let singleCmd = {reset: 'reset what'
}
let twoCmd = {'reset board': 'board fault','board add': 'where to add','board delete': 'no board at all','reboot backplane': 'impossible','backplane abort': 'install first'
}
let arrCmd
while(arrCmd = readline()) {let printCmd = 'unknown command'let count = 0arrCmd = arrCmd.split(' ')if (arrCmd.length == 1) {for (let cmd in singleCmd) {if (new RegExp(`^${arrCmd[0]}[a-zA-Z]*$`).test(cmd)) {printCmd = singleCmd[cmd]count++}}if (count>1) printCmd = 'unknown command'} else if (arrCmd.length == 2) {for (let cmd in twoCmd) {if (new RegExp(`^${arrCmd[0]}[a-zA-Z]* ${arrCmd[1]}[a-zA-Z]*$`).test(cmd)) {printCmd = twoCmd[cmd]count++}}if (count>1) printCmd = 'unknown command'}print(printCmd)
}

HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序【排序】

描述
输入整型数组和排序标识,对其元素按照升序或降序进行排序
数据范围:1~1000,元素大小满足 0~100000

输入描述:
第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序

输出描述:
输出排好序的数字

示例1
输入:

8
1 2 4 9 3 55 64 25
0

输出:

1 2 3 4 9 25 55 64

示例2
题解:

let n = parseInt(readline())
let arr = readline().split(' ')
let order = parseInt(readline())
let orderedArr = []
if (order == 0) {orderedArr = arr.sort((a,b) => a-b)
} else if (order == 1) {orderedArr = arr.sort((a,b) => b-a)
}
console.log(orderedArr.join(' '))

牛客网华为机试 JavaScript V8(一小部分)相关推荐

  1. JavsScript牛客网华为机试(11-20)题解

    牛客网华为机试题解JavaScript版本 华为机试第11-20题解答(js) 11.数字颠倒 12.字符串反转 13.句子逆序 14.字符串排序 15.求int型数据在内存中存储时1的个数 16.购 ...

  2. 牛客网--华为机试在线训练10:字符个数统计

    牛客网–华为机试在线训练10:字符个数统计 题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127).不在范围内的不作统计. 输入描述: 输入N个字符,字符在A ...

  3. 牛客网–华为机试在线训练9:提取不重复的数

    牛客网–华为机试在线训练9:提取不重复的数 题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺 ...

  4. 牛客网–华为机试在线训练8:合并表记录

    牛客网–华为机试在线训练8:合并表记录 题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个 ...

  5. 牛客网–华为机试在线训练7:取近似值

    牛客网–华为机试在线训练7:取近似值 题目描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. 输入描述: 输入一个正浮点数值 输 ...

  6. 牛客网–华为机试在线训练6:质数因子

    牛客网–华为机试在线训练6:质数因子 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接 ...

  7. 牛客网–华为机试在线训练5:进制转换

    牛客网–华为机试在线训练5:进制转换 题目描述 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串.(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串. 输出描述: 输出该 ...

  8. 牛客网–华为机试在线训练4:字符串分隔

    牛客网–华为机试在线训练4:字符串分隔 题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输 ...

  9. 【To Debug】牛客网--华为机试在线训练3:明明的随机数

    牛客网–华为机试在线训练3:明明的随机数 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字, ...

最新文章

  1. 淘宝用了mysql,您呢?
  2. 我和“限速”之间的纠缠(一)
  3. 风格迁移应用_[风格迁移][超分][ECCV2016]Perceptual Losses for Real...
  4. Spring-Data-JPA 动态查询黑科技
  5. Android Gallery和ImageSwitcher同步自动(滚动)播放图片库
  6. CCF NOI1036 进制转换
  7. NV12转化为BMP函数
  8. FishC《零基础学习python》笔记--第010讲、11讲、12讲:列表:一个打了激素的数组1、2、3
  9. Gwallet小百科 | 2019年区块链游戏行业发展现状分析
  10. 吊打何同学?猛肝24小时,用6000元成本打造 AirDesk!
  11. 养不起真猫,就用代码吸猫-Unity粒子实现画猫咪
  12. 接口区分Android和iOS吗,区分IOS和Android
  13. 项目一. 家庭记账软件
  14. 关于SQL Server中将数值类型转换为字符串的问题
  15. win7 设置双屏壁纸
  16. 怎么判断时double和floatc++_痛心!血肌酐正常却已经肾衰?如何判断肾功能,这些指标更准确...
  17. Resid------set
  18. 计算机图形基础学答案,计算机图形学基础答案全.pdf
  19. NAXX Demo3_JSQ_03
  20. linux系统执行.exe文件

热门文章

  1. 行人重识别Deep person reid源码测试(Torchreid)(一)
  2. WOW Grandel before TBC
  3. 深圳特区建立40周年,说说我对深圳的十年印象
  4. 请选出可用作c语言用户标识符的是6,请选出可用作C语言用户标识符的一组标识符____...
  5. 电脑自动修复失败之后
  6. mean value coordinates(均值重心坐标)定义及证明
  7. 【附源码】Java计算机毕业设计安卓基于Android的物流快递app(程序+LW+部署)
  8. ​高新技术企业优惠政策有哪些?
  9. 【机会约束、鲁棒优化】具有排放感知型经济调度中机会约束和鲁棒优化研究【IEEE6节点、IEEE118节点算例】(Matlab代码实现)
  10. 文案策划入行难吗?我来给你支招