首页 > 学院 > 开发设计 > 正文

名字的漂亮度

2019-11-14 12:03:47
字体:
来源:转载
供稿:网友

名字的漂亮度

描述输入输出测试用例代码

描述

给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。给出多个名字,计算每个名字最大可能的“漂亮度”。

输入输出

输入:整数N,后序N个字符串(不区分大小写) 输出:N个字符串的漂亮度(以换行结尾)

测试用例

输入 输出
2 zhangsan lisi 192 101

代码块

#include <iostream>#include <string>using namespace std;int cmp(const void *a, const void *b){ return(*(int *)b - *(int *)a);}int main(){ int num; cin >> num; string *str = new string[num]; for (int i = 0; i < num; i++){ cin >> str[i]; } int *cnt = (int*)malloc(sizeof(int)* 26); for (int i = 0; i < num; i++){ cnt = (int*)memset(cnt, 0, sizeof(int)*26); int len = str[i].size(); for (int j = 0; j < len; j++){ if (str[i][j] < 97) str[i][j] += 32; cnt[str[i][j] - 'a']++; } qsort(cnt, 26, sizeof(cnt[0]), cmp ); int res = 0, ccnt = 0; for (int j = 0; j < 26; j++){ if (ccnt < len){ ccnt += cnt[j]; res += cnt[j] * (26 - j); } else break; } cout << res << endl; } free(cnt); return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表