RSS
linjiazhen
分类
标签云
搜索
随机文章
最新评论
最新留言
链接
计数器
145094
UVA 10008: What's Cryptanalysis?
题目大意:
密码破解是一门艺术啊,现在要你分析一段密文,输出各个字母分别是多少个。
解题思路:
统计一下,输出来就是啦,一些不熟悉的字符函数用用。
解题代码:
#include<iostream> #include<string> #include<cctype> #include<algorithm> using namespace std; struct node{ char c; int v; node(){ c='\0'; v=0; } }s[26]; bool cmp(node a,node b){ if(a.v==b.v) return a.c<b.c; else return a.v>b.v; } int main(){ int n; string cry; while(cin>>n){ for(int i=0;i<=n;i++){ getline(cin,cry); int len=cry.length(); for(int j=0;j<len;j++) if(isalpha(cry[j])){ char t=toupper(cry[j]); s[t-'A'].c=t; s[t-'A'].v++; } } sort(s,s+26,cmp); for(int i=0;i<26&&s[i].v!=0;i++){ cout<<s[i].c<<' '<<s[i].v<<endl; } } return 0; }
扩展知识:
http://blog.csdn.net/lin49940/archive/2010/04/27/5535700.aspx
http://en.wikipedia.org/wiki/Cryptanalysis