题目描述:
给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。
知识点: 字符串
输入: 整数N,后续N个名字;N个字符串,每个表示一个名字
输出: 每个名称可能的最大漂亮程度
样例输入: 2 zhangsan lisi
样例输出: 192 101
代码:
#include <iostream>
#include <string>
#define MAX 100
using namespace std;
int main()
{
int n, i, j, k, len, temp;
cin >> n;
string str[MAX];
for (i = 0; i < n; i++)
cin >> str[i];
for (i = 0; i < n;i++)
{
int sum = 0, count[26] = { 0 };
len = str[i].size();
for (j = 0; j < len; j++)
{
if (str[i][j] >= 'A'&&str[i][j] <= 'Z')
str[i][j] = str[i][j] + 'a' - 'A';
}
for (j = 0; j < len; j++)
count[str[i][j] - 'a']++;
for (j = 0; j < 25; j++)
for (k = j + 1; k < 26; k++)
if (count[j] < count[k])
{
temp = count[j];
count[j] = count[k];
count[k] = temp;
}
j = 0;
while (count[j] != 0&&i<26)
{
sum = sum + count[j] * (26 - j);
j++;
}
cout << sum << endl;
}
cin.get(); //用于调试时看清执行结果,提交代码前必须删除,否则会导致系统显示超时
cin.get();
return 0;
}
得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
100(100) | 63ms | 2068KB | 12 | 5 |