Pesquisar este blog

Livros Recomendados

sábado, 30 de janeiro de 2021

URI (BEECROWD) - 1255 - Frequência de Letras - Strings - C

Plataforma: URI
Problema1255

Enunciado:
Neste problema estamos interessados na frequência das letras em uma dada linha de texto. Especificamente, deseja-se saber qual(is) a(s) letra(s) de maior frequência do texto, ignorando o “case sensitive”, ou seja maiúsculas ou minúsculas (sendo mais claro, “letras” referem-se precisamente às 26 letras do alfabeto).

Linguagem: C


Solução:

#include <stdio.h>
#include <string.h>
int main() {
    char alfabeto[27] = "abcdefghijklmnopqrstuvwxyz";
    char palavra[256];
    int frequencia[26];
    int n, i, j, maior;
    scanf("%d ", &n);
    while (n--) {
        scanf ("%[^\n]%*c", palavra);
        for (i = 0; i < 26; i++)
            frequencia[i] = 0;
        for (i = 0; i < strlen(palavra); i++) {
            for (j = 0; j < 26; j++) {
                if (palavra[i] == alfabeto[j] || palavra[i]+32 == alfabeto[j]) {
                    frequencia[j]++;
                    break;
                }
            }
        }
        maior = frequencia[0];
        for (i = 1; i < 26; i++)
            if (frequencia[i] > maior)
                maior = frequencia[i];
        for (i = 0; i < 26; i++)
            if (frequencia[i] == maior)
                printf("%c", alfabeto[i]);
        printf("\n");
    }
    return 0;
}

Nenhum comentário:

Postar um comentário

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas