贪心算法,本质是局部最优解生成全局最优解。
但是不要忘记要先进行排序,否则可能无法得到全局最优解
#include<stdio.h>
#include<string.h>
int main(void)
{
    int num;
    scanf("%d",&num);
    char str[10000]={0};
    while(scanf("%s",&str)!=EOF)
    {
        int len=strlen(str);
        int times[26]={0};
        for(int i=0;i<len;i++)
        {
            int temp=str[i]-'a';
            times[temp]++;
        }
        //降序排序
        for(int i=0;i<25;i++)
        {
            for(int j=0;j<25-i;j++)
            {
                if(times[j]<times[j+1])
                {
                    int t;
                    t=times[j+1];
                    times[j+1]=times[j];
                    times[j]=t;
                }
            }
        }
        //for(int i=0;i<26;i++){printf("%d",times[i]);}
        int ini=26;
        int sum=0;
        for(int i=0;i<26;i++)
        {
           if(times[i]!=0)
           {
               sum+=times[i]*ini;
               ini--;
           }
        }
        printf("%d\n",sum);
        
    }
    return 0;
}