华为机试题五

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<iostream>
#include<string>
using namespace std;
const int M=50;
int main()
{
    int n,i,j,k,len;
    int beauti[M]={0};
    int t;
    cin>>n; 
    char a[M][30];
    for(i=0;i<n;i++) 
        cin>>a[i];
    for(i=0;i<n;i++)
    {
        int b[26]={0};
        len=strlen(a[i]);
        for (j=0;j<len;j++)
        {
            if (a[i][j]<'a')
            {
                a[i][j] = a[i][j]+32;
            }
        }
        for(j=0;j<len;j++)//计算每个字母出现的频次。
        {
            b[a[i][j]-'a']++;
        }
        for(k=0;k<26;k++)//将每个字母出现的频次按从大到小的顺序排列。
        {
            for(int m=k+1;m<26;m++)
            {
                if(b[k]<b[m])
                {
                    t=b[k];b[k]=b[m];b[m]=t;
                }
            }
        }  
        for(int j=0,du=26;j<26,du>=1;j++,du--)//计算a[i]的漂亮度
        {  
            beauti[i]=beauti[i]+du*b[j];
        }
    }
    for(i=0;i<n;i++)
        cout<<beauti[i]<<endl;
    return 0;
}

 字母漂亮程度

posted on   Zincky  阅读(172)  评论(0编辑  收藏  举报

努力加载评论中...

导航

点击右上角即可分享
微信分享提示