zoukankan      html  css  js  c++  java
  • (贪心 字符串 打好基础) 51nod 1182完美字符串

    约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。
    约翰不在乎字母大小写(也就是说字母A和a的完美度相同)。给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77。
     

    输入

    输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符。

    输出

    由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。

    输入样例

    dad

    输出样例

    77


    C++代码:
    #include<iostream>
    #include<string>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int main(){
        int a[26];
        string s;
        getline(cin,s);
        int m;
        memset(a,0,sizeof(a));
        for(int i = 0; i < s.length(); i++){
            s[i] = tolower(s[i]);
            m = s[i] - 'a';
            a[m]++;  
        }
        long long sum = 0;
        sort(a,a+26);    
        for(int i = 0; i < 26; i++){
            sum = sum + (long long)a[i]*(i+1);
        }
        printf("%lld",sum);
        return 0;
    }    
  • 相关阅读:
    标准输入/输出通道
    不要在纠结负数的表示了
    Coursera公开课-Machine_learing:编程作业7
    Heap堆
    广义表的实现
    二叉树的实现
    模拟实现strstr和strrstr
    栈和队列常考面试题(二)
    栈和队列常考面试题(一)
    vector迭代器失效的几种情况
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10533002.html
Copyright © 2011-2022 走看看