解题思路: 找出map容器的映射值(单词个数)的最值,判断其差值是否为素数(质数),按要求输出即可
参考代码:
#include <iostream> #include <string> #include <cmath> #include <map> using namespace std; bool prime(int p) { if(p==1) return false; if(p==2) return true; if(p%2!=0) { for(int i=2;i<=sqrt(p);i++) { if(p%i==0) { return false; } } return true; } return false; } bool check(int a,int b) { if(prime(a-b)) return true; return false; } int main() { int max,min; map<char,int> v; string str,w; cin>>str; for(int i=0;i<str.size();i++) { v[str[i]]++; } min=v.begin()->second; max=v.begin()->second; map<char,int>::iterator it; for(it=v.begin();it!=v.end();it++) { if(it->second>max) max=it->second; if(it->second<min) min=it->second; } if(check(max,min)) cout<<"Lucky Word\n"<<max-min<<endl; else cout<<"No Answer\n"<<0<<endl; return 0; }//dongdong
0.0分
0 人评分