PAT B -1042 statistiques de caractère (20 points)

Cliquez sur le lien résumé complet de solution PAT B -AC

Sujet:
écrire un programme pour trouver des lettres les plus fréquentes qui apparaissent dans le texte pour une période donnée.

Format d' entrée:
Entrez une longueur donnée de chaîne dans une ligne ne dépasse pas 1000. Chaîne de table de codes ASCII toute composition de caractères et espaces visibles contenant au moins une lettre en anglais, se terminent par un retour chariot (ENTER compte pas).

Les formats de sortie:
la plus haute fréquence des lettres de l'alphabet et le nombre d'occurrences de sortie apparaît dans une rangée, séparés par un espace entre eux. Si côte à côte, la sortie par ordre alphabétique minimum cette lettre. Cas Statistiques insensibles, la sortie des lettres minuscules.

entrée de l'échantillon:

This is a simple TEST.  There ARE numbers and other symbols 1&2&3...........

Exemple de sortie:

e 7

Mon code:

#include<iostream>
#include<cstdio>
#include<vector>
#include<string>
#include<set>
#include<map>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstring>
#include<sstream>
using namespace std;
//有的时候题目是一起做的,所以会有不需要的头文件

int main()
{
    int num[26]={0};
    string str;
    getline(cin,str);
    for(int i=0;i<str.length();i++)
    {
        char temp=str[i];
        if(temp>='a'&&temp<='z')
            num[temp-'a']++;
        else if(temp>='A'&&temp<='Z')
            num[temp-'A']++;
    }
    int big_id=0;
    for(int i=0;i<26;i++)
    {
        if(num[big_id]<num[i])big_id=i;
    }
    printf("%c %d",'a'+big_id,num[big_id]);
    return 0;
}

Publié 82 articles originaux · a gagné les éloges 1 · views 1694

Je suppose que tu aimes

Origine blog.csdn.net/qq_34451909/article/details/104796339
conseillé
Classement