题解 | #名字的漂亮度#
名字的漂亮度
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")