首页 > 试题广场 >

名字的漂亮度

[编程题]名字的漂亮度
  • 热度指数:152940 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定由小写字母构成的字符串,定义字符串的“漂亮度”为该字符串中所有字母“漂亮度”的总和。
\hspace{15pt}每一个字母的“漂亮度”将由你来确定,具体规则如下:
\hspace{23pt}\bullet\,每一个字母的“漂亮度”为 126 之间的整数;
\hspace{23pt}\bullet\,没有两个字母的“漂亮度”相同。
\hspace{15pt}现在,你需要确定每个字母的“漂亮度”,以使得字符串的“漂亮度”最大。

输入描述:
\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}在一行上输入一个长度为 1 \leqq {\rm len}(s) \leqq 10^4 、仅由小写字母构成的字符串 s


输出描述:
\hspace{15pt}对于每一组测试数据,输出一个整数,表示字符串的最大“漂亮度”。
示例1

输入

2
zhangsan
lisi

输出

192
101

说明

\hspace{15pt}对于第一组测试数据,其中一种最优的分配方案是:
\hspace{23pt}\bullet\,将字符 \texttt{`a'} 的漂亮度分配为 26
\hspace{23pt}\bullet\,将字符 \texttt{`n'} 的漂亮度分配为 25
\hspace{23pt}\bullet\,将字符 \texttt{`g'}, \texttt{`z'}, \texttt{`h'}, \texttt{`s'} 的漂亮度依次分配为 24 \sim 21
\hspace{23pt}\bullet\,其余字符随意分配;
\hspace{15pt}最终,得到字符串的“漂亮度”为 (26 + 25) \times 2 + (24 + 23 + 22 + 21) = 192

\hspace{15pt}对于第二组测试数据,其中一种最优的分配方案是:
\hspace{23pt}\bullet\,将字符 \texttt{`i'} 的漂亮度分配为 26
\hspace{23pt}\bullet\,将字符 \texttt{`l'} 的漂亮度分配为 25
\hspace{23pt}\bullet\,将字符 \texttt{`s'} 的漂亮度分配为 24
\hspace{23pt}\bullet\,其余字符随意分配;
\hspace{15pt}最终,得到字符串的“漂亮度”为 26 \times 2 + (25 + 24) = 101

这道题你会答吗?花几分钟告诉大家答案吧!