Anagrames Z70685


Statement
 

pdf   zip   tar

thehtml

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.ccel programa principal i la funció sort_chars
Makefileper compilar amb make còmodament
.vscodecarpeta per compilar i debuggar amb VSCode

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

Public test cases
  • Input

    esponja haro eat japones tea hora ate

    Output

    esponja japones
    ate eat tea
    haro hora
    
  • Input

    qind iqnd njl qind jxjj jjjx jxjj iwtx pfe qnid

    Output

    iqnd qind qnid
    jjjx jxjj
    
  • Information
    Author
    Pau Fernández
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++