zoukankan      html  css  js  c++  java
  • 完美字符串

    约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。

    约翰不在乎字母大小写。(也就是说字母F和f)的完美度相同。给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77。

    分析: 由排序不等式,出现次数最多的字母显然应该给26。所以这个题目变成了统计每种字母出现的次数了,然后按照出现次数从大到小,依次分配从高到低的权值。这就是最朴素的贪心思想。

    输入

    输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符。
    输出
     
    由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。
     
    输入示例

    dad

    输出示例

    77
     1 /*********************************
     2 *   日期:2013-11-03
     3 *   作者:SJF0115
     4 *   题号: 题目 字符串的完美度
     5 *   来源:http://hero.pongo.cn/Question/Details?ID=71&ExamID=69
     6 *   结果:AC
     7 *   来源:庞果网
     8 *   总结:
     9 **********************************/
    10 #include<iostream>
    11 #include<stdio.h>
    12 #include<string>
    13 using namespace std;
    14 
    15 int cmp(const void*a, const void*b)
    16 {
    17     return *(int*)b - *(int*)a;
    18 }
    19 
    20 int perfect(const string &s) {
    21     int i;
    22     int len = s.size();
    23     int count[26] = { 0 };
    24     //统计字母个数
    25     for (i = 0;i < len;i++) {
    26         if (s[i] >= 'A' && s[i] <= 'Z') {
    27             count[s[i] - 'A'] ++;
    28         }
    29         else if (s[i] >= 'a' && s[i] <= 'z') {
    30             count[s[i] - 'a'] ++;
    31         }
    32     }
    33     //从大到小排序
    34     qsort(count, 26, sizeof(count[0]), cmp);
    35     int perfectDegree = 26;
    36     int sum = 0;
    37     //计算完美度
    38     for (i = 0;i < 26;i++) {
    39         sum += count[i] * perfectDegree;
    40         perfectDegree--;
    41     }
    42     return sum;
    43 }
    44 
    45 int main()
    46 {
    47     int i, n;
    48     string str;
    49     while (cin >> str) {
    50         printf("%d
    ", perfect(str));
    51     }
    52     return 0;
    53 }
    不犯罪盗版→提高自我技术
  • 相关阅读:
    【EF学习笔记05】----------操作内存中的数据
    【EF学习笔记05】----------DBContext基础查询
    【EF学习笔记04】----------EF简单增删改查
    【EF学习笔记03】----------使用原生Sql语句
    EntityFramework追踪Sql语句
    博客园自定义样式(标题 h1 h2 h3)
    SQLserver2012 修改数据库架构
    IIS7 配置URL_REWRITE
    maven项目使用mybatis-generator自动生成代码
    myeclipse关闭properties文件自动转义
  • 原文地址:https://www.cnblogs.com/zoudajia/p/5508494.html
Copyright © 2011-2022 走看看