题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
#include <iostream>
#include <vector>
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
int getpld(string str){
sort(str.begin(),str.end());
vector<int> n1;
int pld = 0;
int len = str.size();
if(len == 0){
return 0;
}else if(len == 1){
return 26;
}else{
int count = 1;
for(int i =0;i<len-1;i++){
if(str[i] == str[i+1]){
count++;
}else{
n1.push_back(count);
count = 1;
}
}
n1.push_back(count);
sort(n1.begin(),n1.end());
reverse(n1.begin(),n1.end());
int n2 = 26;
for(int i = 0;i<n1.size();i++){
pld = pld+n1[i]*n2;
n2--;
}
return pld;
}
}
int main() {
int num;
string str;
vector<string> s;
vector<int> pld;
cin>>num;
for(int i = 0;i<num;i++){
cin>>str;
s.push_back(str);
}
int p;
for(int i=0;i<s.size();i++){
p = getpld(s[i]);
cout<<p<<endl;
}
}
// 64 位输出请用 printf("%lld")
