单点时限: 2.0 sec

内存限制: 256 MB

设 26 个英文字母,每个字母都对应一个使用频率,同一个字母的大小写使用频率相同。

现给定一个由 26 个英文字母构成的字符串,请将字符串按照字母使用频率由大到小重排,使用频率大的字母排在前面,使用频率小的字母排在后面,如果使用频率相同则按照字母顺序表排列,小写字母排在大写字母前面,即 a→ A→ b→ B→ c→ C→ d→ D→ ⋯ → z→ Z。

例如 :

26 个字母的使用频率如下表

A(a) B(b) C© D(d) E(e) F(f) G(g) H(h) I(i) J(j) K(k) L(l) M(m)
8.19 1.47 3.83 3.91 12.25 2.26 1.71 4.57 7.10 0.14 0.41 3.77 3.34
N(n) O(o) P§ Q(q) R® S(s) T(t) U(u) V(v) W(w) X(x) Y(y) Z(z)
7.06 7.26 2.89 0.09 6.85 6.36 9.41 2.58 1.09 1.59 0.21 1.58 0.08
字符串 Thisisaexample 重排后为 eeTaaiisshlmpx

字符串 AertrtsaBereDET 重排后为 eeeEttTaArrrsDB

输入格式
第 1 行:一个整数 T (1≤T≤10) 为问题数。

对于每个问题,有 2 行数据,按如下格式输入:

第 1 行输入 26 个浮点数,分别表示 26 个英文字母 A(a)~Z(z) 的使用频率;

第 2 行输入一个字符串,字符串长度不超过 100 个字符,字符串由 26 个英文字母构成。

输出格式
对于每个问题,输出一行问题的编号(0<开始编号,格式:case #0: 等)。

然后对应每个问题在一行中输出重排后的字符串。

样例
input
3
8.19 1.47 3.83 3.91 12.25 2.26 1.71 4.57 7.10 0.14 0.41 3.77 3.34 7.06 7.26 2.89 0.09 6.85 6.36 9.41 2.58 1.09 1.59 0.21 1.58 0.08
Thisisaexample
8.19 1.47 3.83 3.91 12.25 2.26 1.71 4.57 7.10 0.14 0.41 3.77 3.34 7.06 7.26 2.89 0.09 6.85 6.36 9.41 2.58 1.09 1.59 0.21 1.58 0.08
AertrtsaBereDET
8.19 1.47 3.83 3.91 12.25 2.26 1.71 4.57 7.10 0.14 0.41 3.77 3.34 7.06 7.26 2.89 0.09 6.85 6.36 9.41 2.58 1.09 1.59 0.21 1.58 0.08
Thequickbrownfoxjumpsoverthelazydog
output
case #0:
eeTaaiisshlmpx
case #1:
eeeEttTaArrrsDB
case #2:
eeetTaooooinrrshhdclmpuufgwybvkxjqz

/*
思路:很简单,就是sort+cmp
就是注意所有的频率一样大时cmp注意不要遗漏
*/
#include<iostream>
#include<algorithm>
using namespace std;
double flag[100];
bool cmp(char a,char b)
{if(flag[a-'A']==flag[b-'A']){if(a!=b&&abs(a-b)!=32)//频率一样时,但不是大小写关系return a<b;elsereturn a>b;}return flag[a-'A']>flag[b-'A'];
}
int main()
{int t;cin>>t;for(int i = 0; i < t; i++){for(int j = 0; j < 26; j++){double m;cin>>m;flag[j]=flag[j+32]=m;}string s;cin>>s;sort(s.begin(),s.end(),cmp);printf("case #%d:\n",i);cout<<s<<endl;}return 0;}

3055. 字符频率相关推荐

  1. 英文字符频率统计 python实现

    题目:英文字符频率统计.编写一个程序,对给定的字符串中出现的A~Z字母频率分析,忽略大小写,采用降序方式输出. 方法一: 代码: #把每个元素后面都加一个空格 with open('11.txt', ...

  2. 维吉尼亚密码通过字符频率爆破

    题目的密文如下: qy sdrgx bswkjlpuh zmntp rv wesokk qp fcabwz gqw rdi nlufaaehp rijmntp jjvwmej oqg etz jxmk ...

  3. python英文字符频率统计_Python统计字母出现的频率

    使用 Python 统计 26 个字母出现的频率:输入是一个很长的字符串,对其中的英文字母统计其出现的次数,其他字符忽略不处理,大写字母和小写字母当作一个字母来看. input_str = " ...

  4. 中文字符频率统计python_用Python数据分析方法进行汉字声调频率统计分析

    用 Python 数据分析方法进行汉字声调频率统计分析 木合塔尔·沙地克 ; 布合力齐姑丽·瓦斯力 [期刊名称] <电脑知识与技术> [年 ( 卷 ), 期] 2017(013)035 [ ...

  5. 中文字符频率统计python_python统计字符串出现最多的字母及其出现次数

    统计字符串出现最多的字母及其出现次数 另外如果次数相同按字母顺序排序. 方法1 可以使用自定义键对c.most_common()进行排序,该键首先考虑频率的降序,然后考虑字母的降序(请注意lambda ...

  6. python英文字符频率统计_Python中怎样统计英文文本中的字母频次?

    关于文本频次统计.先不要考虑如何用python实现的问题. 我捋一捋自己的思路. 频次统计有几种呢?有时我们关注个别字母和汉字的出现频率,也有时候我们更多会关注个别单词或词语的出现频率. 针对这两种常 ...

  7. python英文字符频率统计_python统计文本字符串里单词出现频率的方法

    本文实例讲述了python统计文本字符串里单词出现频率的方法.分享给大家供大家参考.具体实现方法如下: # word frequency in a text # tested with Python2 ...

  8. python 英文字符频率统计 采用降序方式输出_Python读取英文文件并记录每个单词出现次数后降序输出示例...

    本文实例讲述了Python读取英文文件并记录每个单词出现次数后降序输出.分享给大家供大家参考,具体如下: 对文中出现的句号,逗号和感叹号做了相应的处理 sorted排序函数用法: 按照value值降序 ...

  9. 【Python】英文字符频率统计

    忽略大小写 以降序形式输出 !!!!!!重要的两句!!!!!!: items=list(f.items())##f为字典,字典转列表 items.sort(key=lambda x:x[1],reve ...

最新文章

  1. 他修复了程序员吃饭的bug,估值已超过10亿美金!9.9元,2顿饭.....
  2. cufon,在网页上画出特殊字体
  3. nehe教程混合这一节需要注意的两个地方
  4. Webservice接口
  5. JavaScript学习(八十八)—数组知识点总结,超详细!!!
  6. 字符指针变量和字符数组的对比
  7. android与php登录,Android开发中使用PHP服务器怎么实现一个登录功能
  8. Linux卸载JDK的方法
  9. HDFS原理(超详解)
  10. 字符个数统计(C++)
  11. 计算机连上wifi无法上网了,WiFi已连接不可上网怎么办
  12. 使用igvtools可视化测序深度分布
  13. redhat8.1安装配置yum源
  14. 低成本创业必知的五个“基本点”
  15. 【题目泛做】宝藏(期望)(类欧几里得)
  16. 待办清单和日程计划表哪个会更好?可做日程表和待办提醒管理的便签
  17. Linux常用命令——lpr命令
  18. 墨刀使用入门学习笔记1
  19. rcar-du display timing generation
  20. 如何利用审查元素看密码[小技巧]

热门文章

  1. 寻找突破口语学习技巧
  2. 深入理解JVM-GC
  3. AT89C52RC定时器T2
  4. 无服务器人工智能去中心化,人工智能未来的发展方向是去中心化智能?
  5. cmd命令查看端口和进程信息
  6. 数学:确定性的丧失---第八章 不合逻辑的发展:天堂之门
  7. 假如任正非这个“太阳”不在了,华为怎么办?
  8. 前端系列 | 2015年双11手淘前端技术巡演 - 前言
  9. webrtc系列2——认识depot_tools
  10. 商标注册初审公告后可以使用吗?