NYOJ_62 笨小熊
2015-08-13 20:36
232 查看
题目地址
如何计算一个单词中字母出现的次数?
心得:
输入的字符串可以定义为 string 计算长度 str.size()
如何计算一个单词中字母出现的次数?
心得:
输入的字符串可以定义为 string 计算长度 str.size()
/* 思路 读入n组数据 计算每组数据的长度 分配长度为26的数组计算出现该字母的个数 */ #include<iostream> #include<string.h> #include<math.h> using namespace std; int maxarray( int *a); int minarray( int *a); bool isPrime(int n); int main() { string str; //输入的字母字符串 int n; cin>>n; while(n--) { int a[26]={0}; //26个字母出现的个数记录 cin>>str; for(int i=0;i<str.size();i++) //string 长度 { a[str[i] -'a']++; } if(isPrime(maxarray(a)-minarray(a))) cout<<"Lucky Word"<<endl<<maxarray(a)-minarray(a)<<endl; else cout<<"No Answer"<<endl<<"0"<<endl; } return 0; } int maxarray( int *a) { int temp=a[0]; for(int i=1;i<26;i++) { if(a[i]>temp) temp=a[i]; } return temp; } int minarray( int *a) { int temp=101; //一个很大的数 int i=0; for(;i<26;i++) //min 为第一个不为0的最小的元素 { if(a[i]!=0) temp =a[i]; break; } for(int j=i;j<26;j++) { if(a[j]<temp&& a[j]!=0 ) temp = a[j]; } return temp; } bool isPrime(int n) //质数是大于一的自然数 最小公倍数只有1和他 { int k = sqrt(n); bool count = true; if(n<=1) count=false; for( int i=2;i<=k;i++) { if(n%i==0) count = false; } return count; }
相关文章推荐
- HDU 5387 Clock(计算时针与分针 时针与秒针 分针与秒针的夹角)
- java几种图片加载方法的理解
- 磨刀不费砍柴功——Android编程中的实用快捷键
- js 异步请求封装
- Java FTP简单工具类
- 决定
- 2015 多校联赛 ——HDU5384(AC自动机)
- 2015 多校联赛 ——HDU5384(AC自动机)
- HDU 5386 Cover
- POJ 1385 Lifting the Stone
- Spring Aop基础总结
- 算法评价指标
- PHP高效率写法(详解原因)
- ZOJ1074 (最大和子矩阵 DP)
- 积木覆盖 解题报告
- Android-应用开发-页面跳转和数据传递(六)
- Android:关于声明文件中android:process属性说明
- TCP连接
- 你真的理解了AsyncTask吗?
- 洛谷 P1858 多人背包