当前位置: 代码迷 >> 综合 >> P1125 笨小猴(哈希方法)
  详细解决方案

P1125 笨小猴(哈希方法)

热度:87   发布时间:2024-01-17 02:14:53.0

思路,将26个字母按数字顺序存入数组,再逐一搜搜,记录每个数据出现的次数,找出最大值和最小值,然后做差判断素数即可(已经对单词的字母进行排序)
代码如下 最重要的是按照创造一个数组存入相应的字母出现的次数

#include<iostream>
#include<algorithm>
#include<iomanip>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<string>
#include <string.h>
using namespace std;
int ispri(int n){
    if(n ==0){
    return 0;}if(n ==1){
    return 0;}if(n ==2){
    return 1;}if(n ==3){
    return 1;}for(int i=2;i<sqrt(n);i++){
    if(n%i==0){
    return 0;}}return 1;
}
int main()
{
    char a[100];scanf("%s",a);int num['z']={
    0};
// cout<<strlen(a);
// cout<<a<<endl;sort(a,a+strlen(a));
// cout<<a<<endl;int x=0;for (int i = 0; i < strlen(a); i++) {
    num[a[i]]++;}int maxm=0;int minn=10005;for (int i = 'a'; i < 'z'; i++) {
    maxm=max(maxm,num[i]);if(num[i]!=0)minn=min(minn,num[i]);}if(ispri(maxm-minn)){
    printf("Lucky Word\n%d",maxm-minn);}else{
    printf("No Answer\n0");}return 0;
}