Nova solução!
Fala, pessoal, tudo beleza? Em alguns exercícios postarei também soluções alternativas. Elas terão alguma diferença para a outra solução que postei, seja num método, uma estrutura, um operador ou até mesmo aplicando uma lógica diferente! Confira essa solução para o problema de Freqência de Letras em C++!
Problema: 1255
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++
#include <iostream> using namespace std; int main() { string alfabeto = "abcdefghijklmnopqrstuvwxyz"; string palavra; int frequencia[26]; int n, i, maior, tam; cin >> n; cin.ignore(); while (n--) { getline(cin, palavra); for (i = 0; i < 26; i++) frequencia[i] = 0; tam = palavra.size(); for (i = 0; i < tam; i++) { for (int 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) cout << alfabeto[i]; cout << endl; } return 0; }
Nenhum comentário:
Postar um comentário