第九天,lucky word,巧熟组

大家好,好久不见,我去打比赛了,对不起,停更了。今天我找到了一道康了秒懂,不康有点懵的题。

题lucky

怎么做?自己想。

题还是比较简单的,~~很~~容易康懂。一想就是定一个函数判断质数,可你要定26个变量存储字母的数量吗,不。

for(int i=0;i<len;i++)
        sum[s[i]-'a']++;

这样既可轻松化解,又可以省,我的内存。

~~简单吧~~

哦,还要提一点,可以省去质数函数,因为最多要判断sqrt(maxn - minn),虽然是100以内,但不如直接用一个熟组进行枚举。

const int prime[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};

懂了吗,懂了就做吧

没时间了,我要去了。

code

#include <bits/stdc++.h>
using namespace std;
char s[110];
const int prime[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int sum[26];
int main(){
    int maxn=0,minn=110;
    cin>>s;
    int len=strlen(s);
    for(int i=0;i<len;i++)
        sum[s[i]-'a']++;
    for(int i=0;i<26;i++){
        if(sum[i]>maxn)
            maxn=sum[i];
        if(sum[i]>0&&sum[i]<minn)
            minn=sum[i];
    }
    for(int i=0;i<25;i++){
        if(maxn-minn==prime[i]){
            printf("Lucky Word\n%d",maxn-minn);
            return 0;
        }
    }
    printf("No Answer\n0");
    return 0;
}

加油骚年!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值