博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hnu 12505 字符串处理
阅读量:4983 次
发布时间:2019-06-12

本文共 1544 字,大约阅读时间需要 5 分钟。

题意:

给出一些字符串

其中出现频率最多的字符 c  对应26个字母的 'E'

问出现频率最多的字符 c 离'E'的距离 和 让我们把字符串翻译过来..

如果出现频率最大的字符有两个..则输出 "NOT POSSIBLE"

 

思路:

用一个数组来记录每个单词出现次数

找最多的那个..

对我来说 主要是翻译的过程 有点困难..我被绕晕了..囧~~

Tips:

※ 实现循环的过程用 %

※ 翻译过程用 ((arr[i]-'A')-tmp+26)%26+'A'

Code:

View Code
1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 #define clr(x) memset(x, 0, sizeof(x)) 7 8 struct Ch 9 {10 char c;11 int num;12 }c[30];13 14 int main()15 {16 int i, j, k;17 char arr[1010], cc;18 int mm[30], d, T;19 bool flag;20 scanf("%d", &T);21 getchar();22 while(T--)23 {24 25 gets(arr);26 clr(mm);27 flag = true;28 29 int len = strlen(arr);30 for(i = 0; i < len; ++i)31 if(arr[i] != ' ') mm[arr[i]-'A']++;32 33 int min = -1;34 for(i = 0; i < 30; ++i){35 if(mm[i] > min){36 min = mm[i];37 cc = i+'A';38 }39 }40 41 for(i = 0; i < 30; ++i)42 if(i+'A' != cc && mm[i] == min) flag = false;43 44 if(!flag) puts("NOT POSSIBLE");45 else {46 printf("%d ", int(cc-'E'+26)%26);47 int tmp = int((cc-'E'+26)%26);48 for(i = 0; i < len; ++i)49 printf("%c", arr[i]==' '?arr[i]:((arr[i]-'A')-tmp+26)%26+'A');50 puts("");51 }52 }53 return 0;54 }

转载于:https://www.cnblogs.com/Griselda/archive/2012/09/09/2677215.html

你可能感兴趣的文章
省市联动 js
查看>>
常用HTTP状态码
查看>>
WebAPI GET和POST请求的几种方式
查看>>
re 模块 常用正则表达式符号 最常用的匹配语法
查看>>
第三小节之Java API
查看>>
python3之迭代器&生成器
查看>>
《此生未完成》读后感
查看>>
Nexus搭建Maven私服
查看>>
访问者模式
查看>>
CentOS 7安装最新版本Git
查看>>
DTW的原理及matlab实现
查看>>
jQuery EasyUI API 中文文档 - 对话框(Dialog)
查看>>
在Android8.0以上收不到广播问题(AppWidget)
查看>>
SCOI2010 传送带 [三分/模拟退火]
查看>>
C#读取文件,返回字符串形式的文件内容
查看>>
卸载软件时出现的“不能够打开文件INSTALL.LOG”错误-清理注册表即可
查看>>
R学习笔记(3):绘图
查看>>
类的封装
查看>>
命名空间的定义
查看>>
Android 中Json解析的几种框架(Gson、Jackson、FastJson、LoganSquare)使用与对比
查看>>