广州白云机场网站建设,杭州市建设网官网,餐饮网站模板,杭州网站制作建设最大排列
题目
给定一组整数#xff0c;重排序后输出一个最大的整数
输入
数字组合
输出
最大的整数
示例一
输入
10 9输出
910解题思路
我们可以读入一个字符串#xff0c;将字符串中的单词按照每个单词的字典序长度#xff0c;字典序从大到小的顺序排序#x…最大排列
题目
给定一组整数重排序后输出一个最大的整数
输入
数字组合
输出
最大的整数
示例一
输入
10 9输出
910解题思路
我们可以读入一个字符串将字符串中的单词按照每个单词的字典序长度字典序从大到小的顺序排序最后输出排序后的结果。
使用readline模块实现从命令行读入一个字符串并在读入完成后调用solveMethod()方法。solveMethod()方法首先通过split()方法将字符串按照空格分割成单词数组。对单词数组排序 a. 取出两个单词计算出这两个单词的字典序长度并将这两个单词转化为字符数组。b. 遍历两个单词的字符数组如果在任意位置出现不同的字符则返回以字符的ASCII码为依据的比较结果。c. 如果字典序长度不同则比较短的单词的第一个字符与长的单词的其他字符。 最后通过console.log()方法输出排序后的结果。
考点分析
Node.js基础readline模块的使用JavaScript字符串和数组的操作如split()、sort()、join()等方法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 联盟共同拥有并授权组内成员发布。
目标 助你解开所有机试题