UVa 10008

De DCC UFMG - Maratona de Programação
Ir para: navegação, pesquisa

UVa 10008 - What's Cryptanalysis? (http://uva.onlinejudge.org/index.php?option=onlinejudge&Itemid=99999999&page=show_problem&category=&problem=949&mosmsg=Submission%20received%20with%20ID%2013698361)

Problema

Dado $N$ frases, conte os caracteres e os imprima em ordem decrescente.

Dicas

  • Utilize a função toupper () para tranformar um caractere para maiúsculo.
  • Para ler uma linha inteira em C++, use o getline.
  • Utilize um map para contar.

Solução

A solução fica oculta por padrão. Desencorajamos que você olhe a solução do problema antes de ter tentado.
Esse problema pode ser resolvido utilizando um map <char, int> para contar as letras. Ao final, você terá um map com todas as letras que aparecem nas frases juntamente com a sua quantidade. Agora, basta ordena-las usando um vector (por exemplo). Note que você precisa criar um método de comparação para fazer a ordenação: primeiro pela quantidade e em seguida pela ordem lexicografica.

Implementação

A solução fica oculta por padrão. Desencorajamos que você olhe a solução do problema antes de ter tentado.
Considerando que o seu vector é do tipo pair <int, char> , um possível método de comparação seria:
bool comp (pair<int, char> a, pair<int, char> b){
	
	if (a.first == b.first)
		return a.second < b.second;
	else
		return a.first > b.first;
}
Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Ferramentas