Anagrames

Fes un programa que llegeix una seqüència de paraules i escriu els grups d’aquestes paraules que són anagrames unes de les altres. Dues paraules són anagrames si tenen les mateixes lletres (i en les mateixes quantitats) però en un ordre diferent, com ara "boca" i "obac".

Per ajudar a resoldre el problema és útil tenir la funció sort_chars:

#include <algorithm> // per std::sort
using namespace std;

/**
 * @brief Retorna un nou string amb les lletres de 
 *        `s` ordenades
 * 
 * @param  s  un `string`
 * @returns   Un nou string amb les lletres de `s` ordenades
 */
string sort_chars(string s) {
    string sorted = s;
    sort(sorted.begin(), sorted.end());
    return sorted;
}

(El programa principal proporcionat ja la conté.)

Entrada

L’entrada és una seqüència de paraules, sense sentinella.

Sortida

La sortida són els grups d’anagrames, un per línia, i a on cada grup d’anagrames està ordenat per ordre lexicogràfic i amb un espai entre cada parell de paraules. Si un grup d’anagrames té només un element (no és un "grup" pròpiament), no s’ha de mostrar a la sortida. L’ordre de les línies no és important, el Jutge només mira que cada grup d’anagrames estigui present, no en quina posició.

Observació

Els fitxers públics (icona del gatet) contenen:

main.cc el programa principal i la funció sort_chars
Makefile per compilar amb make còmodament
.vscode carpeta per compilar i debuggar amb VSCode

Cal enviar el fitxer main.cc (no cal fer un .tar).

Informació del problema

Autoria: Pau Fernández

Generació: 2026-01-25T20:01:51.728Z

© Jutge.org, 2006–2026.
https://jutge.org