这个题的难点是不是在排序上啊,否则我想不出来这个题难在哪儿。
排序的话可以用插入排序、快速排序等。不过JavaScript有Math.sort方法。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
let arr = [];
while(line = await readline()){
arr.push(line);
}
let count = parseInt(arr[0]); // 成绩的个数
let flag = parseInt(arr[1]);
arr.splice(0,2);
let obj = {};
for(let i=0;i<arr.length;i++){
let tp = arr[i].split(' ');
if(obj[tp[1]] != undefined){
let tc = obj[tp[1]];
obj[tp[1]] = tc+' '+tp[0];
}else{
obj[tp[1]] = tp[0];
}
}
let grade_sort = [];
if(flag == 0){ // 从高到低
grade_sort = Object.keys(obj).sort((a,b)=>b-a);
}else if(flag == 1){ // 从低到高
grade_sort = Object.keys(obj).sort((a,b)=>a-b);
}
for(let i = 0;i<grade_sort.length;i++){
let n = obj[grade_sort[i]]; // 获取名字
if(n.indexOf(' ') != 0){
let ns = n.split(' ');
ns.forEach(item=>{
console.log(item+' '+grade_sort[i]);
})
}else{
console.log(n+' '+grade_sort[i]);
}
}
}()

京公网安备 11010502036488号