题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let num = 0
rl.on('line', function (line) {
// 数量最多的字母,就给定漂亮度是26 其次是 25 24 23 ...
num++
if(num > 1){
const s = line.split('')
// 保存出現的每个字母的出现次数
// {a:2, b:3}
const obj = {}
for(let key of s){
if(obj[key]){
obj[key]++
}else {
obj[key] = 1
}
}
// 根据字母出现次数,倒叙排序
const arr: number[] = Object.values(obj).sort((a: number,b:number)=>b-a) as number[]
let res = 0
// 出现次数多,从26--->1一次赋值,这样就嗯呢该得到最大的漂亮度
for(let i = 0; i < arr.length; i++){
res += (26-i) * arr[i]
}
console.log(res)
}
});

查看11道真题和解析