题解 | #名字的漂亮度#
名字的漂亮度
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,依次递减,最后所有漂亮度求和