标签:26 int 漂亮 华为 str 机试 include 字母
描述
给出一个名字,该名字有26个字符组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。字母忽略大小写。给出多个名字,计算每个名字最大可能的“漂亮度”。
本题含有多组数据。
输入描述:整数N,后续N个名字
输出描述:每个名称可能的最大漂亮程度
示例1
输入:
2
zhangsan
lisi
输出:
192
101
题解:
1)求出去重后各个字母出现的个数。
2)出现重复字母最多的为26,次多为25依次类推。
zhangsan–a:26 a:26 n:25 n:25 z:24 h:23 g:22 s:21
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int N;
cin>>N;
string str;
for(int i = 0;i<N;i++)
{
cin>>str;
vector<int> t;
for(int j = 0;j<str.size();j++)
{
t.push_back(1);
for(int k = j+1;k<str.size();k++)
{
if(str[j] == str[k] || (str[j]-str[k]) == 32 ||(str[j]-str[k]) == -32)
{
++t[j];
str.erase(str.begin()+k);
k = k-1;
}
}
}
sort(t.begin(),t.end());
int sum = 0,r =26;
for(int i = t.size()-1;i>=0;i--)
{
sum = sum+t[i]*r;
--r;
}
cout<<sum<<endl;
}
}
标签:26,int,漂亮,华为,str,机试,include,字母 来源: https://blog.csdn.net/Y1730008223CONG/article/details/120676420
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。