当前位置: 首页 > news >正文

华为OD机试 - 最大排列(JS)

最大排列

题目

给定一组整数,重排序后输出一个最大的整数

输入

数字组合

输出

最大的整数

示例一

输入

10 9

输出

910

解题思路

我们可以读入一个字符串,将字符串中的单词按照每个单词的字典序长度,字典序从大到小的顺序排序,最后输出排序后的结果。

  1. 使用readline模块实现从命令行读入一个字符串,并在读入完成后调用solveMethod()方法。
  2. solveMethod()方法首先通过split()方法将字符串按照空格分割成单词数组。
  3. 对单词数组排序:
    • a. 取出两个单词,计算出这两个单词的字典序长度,并将这两个单词转化为字符数组。
    • b. 遍历两个单词的字符数组,如果在任意位置出现不同的字符,则返回以字符的ASCII码为依据的比较结果。
    • c. 如果字典序长度不同,则比较短的单词的第一个字符与长的单词的其他字符。
  4. 最后通过console.log()方法输出排序后的结果。

考点分析

  1. Node.js基础
  2. readline模块的使用
  3. JavaScript字符串和数组的操作,如split()、sort()、join()等方法
  4. JavaScript字符串的字符编码,如charCodeAt()方法。

Code

const readline = require('readline');
const rl = readline.createInterface({input: process.stdin,output: process.stdout
});rl.question('Enter a string of words separated by spaces: ', line => {solveMethod(line);rl.close();
});const solveMethod = line => {const s = line.split(' ').sort((s1, s2) => {const len1 = s1.length;const len2 = s2.length;const lim = Math.min(len1, len2);const v1 = s1.split('');const v2 = s2.split('');let k = 0;while (k < lim) {const c1 = v1[k];const c2 = v2[k];if (c1 !== c2) {return c2.charCodeAt(0) - c1.charCodeAt(0);}k++;}if (len1 > len2) {while (k < len1) {if (v1[k].charCodeAt(0) > v2[0].charCodeAt(0)) {return -1;}k++;}return 1;} else if (len2 > len1) {while (k < len2) {if (v2[k].charCodeAt(0) > v1[0].charCodeAt(0)) {return -1;}k++;}return 1;} else {return 0;}});console.log(s.join(''));
};

版权说明

试题来源:华为 OD 联盟整理收集

题解:解题思路代码 为原创内容,该部分版权由 OD 联盟共同拥有,并授权组内成员发布。

目标:👉 助你解开所有机试题

http://www.lryc.cn/news/11314.html

相关文章:

  • Prometheus Docker安装及监控自身
  • 点云处理PCL常用函数与工具
  • FyListen 在 MVP 架构中的内存优化表现
  • Qt代码单元测试以及报告生成
  • vscode构建Vue3.0项目(vite,vue-cli)
  • 【2023】华为OD机试真题Java-题目0215-优雅数组
  • 通过Prowork每日自动提醒待处理工作任务
  • Linux自定义系统服务
  • mongodb lambda 查询插件
  • C++设计模式(16)——责任链模式
  • springmvc+jsp电影院购票售票选座推荐网站java ssm
  • ASEMI高压MOS管4N65SE,4N65SE参数,4N65SE特征
  • 第46章 自定义静态与数据库动态授权依赖注入的定义实现
  • Go语言面试题
  • Kubernetes入门级教程
  • 15个顶级思维模型
  • 外贸谷歌优化,外贸google SEO优化费用是多少?
  • 华为OD机试 - 统计匹配的二元组个数(Python) | 机试题算法思路
  • Java 日志简介
  • HTTPS协议原理---详解六个加密方案
  • 纯css实现坤坤经典动作-“铁山靠”
  • Linux 操作系统原理 — NUMA 体系结构
  • cesium学习记录01
  • Linux延时队列工作原理与实现
  • 【Python】scipy稀疏矩阵的奇异值分解svds
  • 网络安全等级保护基础知识汇总
  • ros1使用过程中遇到的问题记录
  • centos7给已有分区进行扩容
  • package.json
  • 【项目精选】户籍管理系统(视频+论文+源码)