哈利波特的魔杖(wand)
题目描述
哈利波特跟随着伟大的魔法学院的院长——邓布利多,来到了一家破旧的的魔杖店,为小哈利选购一根适合他的魔杖。店主惊叹于小哈利的魔法天赋,决定用今天刚到的魔杖原材料,亲手为他制作一根最强大的魔杖。这根魔杖由多块宝石组成,宝石共有26种,为A B .X Y Z(不区分大小写),它们的魔力值范围为1-26,并且每块宝石的魔力值是多少,并不是固定的,而是由店主赋予的。
现在店主想要让这根魔杖的总魔力值最大,应该如何去给每块宝石赋予魔力值,最大魔力值为多少。
输入格式
第一行是一个由字母组成的字符串,字符串的长度≤10000
输出格式
输出一个整数,表示能够组成的魔杖的最大魔力值
输入输出样列
输入样例1:复制
dad
输出样例1:复制
77
说明
魔杖上的宝石是dad,那么可以将26魔力值赋予d,将25魔力值赋予a,此时魔杖的总魔力值为77
哈利波特的魔杖(wand)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
真相重于对错 2022-03-19 16:54关注#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { string str = "dad"; vector<int> map(26); int ans=0; for (int i = 0; i < str.length(); i++) { map[tolower(str[i]) - 'a']++; } sort(map.begin(), map.end()); for (int i = 1; i <= 26; i++) { ans += map[i-1] * i; } cout << ans; return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报