题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); interface BeatyStr { str: string; times: number; } const lines: Array<string[]> = []; rl.on('line', function (line: string) { lines.push(line.split('')); }); rl.on('close', () => { lines.forEach((item, index) => { if (index > 0) { console.log(getBeaty(item)); } }); }); const getBeaty = (strs: string[]): number => { let beatyStrs: BeatyStr[] = []; let maxBeaty = 0; strs.forEach((item) => { const index = beatyStrs.findIndex((i) => i.str === item); if (index > -1) { beatyStrs[index].times += 1; } else { beatyStrs.push({ str: item, times: 1, }); } }); beatyStrs.sort((a, b) => b.times - a.times); beatyStrs.forEach((item, index) => { maxBeaty += item.times * (26 - index); }) return maxBeaty; };