判断字符串中字母出现的个数问题

判断字符串中字母出现的个数问题

问题描述:

img


可以的话请给出具体代码

身处异世界的小明止在准备英语四级考试
这天TA在背单词,偶然发现有些单词非常有趣,假设单词中出现最多的字母的数量
为a,出现最少的字母的数量为b,a-b恰好是一个质(素)数!!
比如单词xxxy,出现最多的字母是×,数量为3,出现最少的字母是y,数量为1,3
1=2是质数。
现在小明给你一个单词,想问你这个单词是不是有趣的。
输入描述:
  仅一行一个由小写字母构成的字符串,表示询问的单词。
输出描述
  仅一行,如果这个单词是有趣的,输出yes,否则输出no。
示例1
  输入 复制
    XXxy
                                                                            复制
   yes
示例2
  输入 复制
   beijing
  输出 复制
    no

#include<stdio.h>
#include<string.h>
int isPrime(int n){
    if(n<2) return 0;
    int i;
    for(i=2;i<n;i++){
        if(n%i==0) return 0;
    }
    return 1;
}
int main() {
    char w[50];
    int i,n[26]={0},a,b,lena;
    scanf("%s",w);
    lena = strlen(w);
    for(i=0;i<lena;i++){
        n[w[i]-97]++;
    }
    a=1;b=1;
    for(i=0;i<26;i++){
        if(n[i]>a) a=n[i];
        if(n[i]!=0&&n[i]<b) b=n[i];
    }
    if(isPrime(a-b)) printf("yes");
    else printf("no"); 
    return 0;
}