题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
const rl = require("readline").createInterface({ input: process.stdin });
let arr = []
rl.on('line', function(line) {
arr.push(line)
})
rl.on('close', function() {
arr.shift()
// console.log(arr)
arr.forEach(item => {
getNum(item)
})
})
function getNum(data) {
let arr1 = data.split('')
let obj = {}
arr1.forEach(item => {
if(!obj[item]) {
obj[item] = 1
}else {
obj[item]++
}
})
// console.log(obj)
let tempArr = []
for(let key in obj) {
tempArr.push(obj[key])
}
tempArr.sort((a,b) => {
return b-a
})
// console.log(tempArr)
let k = 26
let sum = 0
tempArr.forEach(item => {
sum+=item*k
k--
})
console.log(sum)
}
关键在于理解题目,可以转换为:统计字符串中的字母出现次数并排序,次数最多的漂亮度为26,依次递减,最后所有漂亮度求和

查看3道真题和解析