题解 | #名字的漂亮度#

名字的漂亮度

http://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3

S1:统计每个字符的出现频率,存在一个长度26的int数组 S2:对上述数组进行排序,升序排列 S3:构造一个长度26的权重向量保证高频字符拥有最高权重

#include

using namespace std;

int main() { int n; string data; int weight[26]; int beauty; int len; int tmp; //构造一个从小到大的权重矩阵 for(int i=0;i<26;i++) { weight[i]=i+1; }

cin>>n;
while(n>0)
{
    beauty=0;
    //构造计数矩阵
    int counter[26]={0};
    cin>>data;
    len=data.size();
    //cout<<len<<endl;
    //统计每个字符出现频率
    for(int i=0;i<len;i++)
    {
        if(data[i]>='A' && data[i]<='Z')
        {
            tmp=data[i]-'A';
            counter[tmp]+=1;
        }
        else if(data[i]>='a' && data[i]<='z')
        {
            tmp=data[i]-'a';
            counter[tmp]+=1;
        }
    }
    //排序
    int j=25;
    while(j>0)
    {
        for(int i=0;i<j;i++)
        {
            if(counter[i]>counter[i+1])
            {
                tmp=counter[i];
                counter[i]=counter[i+1];
                counter[i+1]=tmp;
            }
        }
        
        j--;
    }
    //for(int i=0;i<26;i++)
     //   {
     //       cout<<counter[i];
    //    }
    //cout<<endl;
    //加权重
    for(int i=0;i<26;i++)
    {
        beauty+=counter[i]*weight[i];
    }

    cout<<beauty<<endl;
    n--;
}
return 0;

}

全部评论

相关推荐

11-03 18:50
门头沟学院 Java
迷茫的大四🐶:问就是马上到,一周五天,6个月以上,全国可飞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务