Informatică, întrebare adresată de ghiurcutaandrep2t1dz, 9 ani în urmă

Se consideră un cuvânt C format din litere mici, nu neapărat distincte. Să se afișeze în ordine lexicografică toate cuvintele distincte formate cu exact aceleași caractere ca și C.
As dori rezolvarea in C++.

Răspunsuri la întrebare

Răspuns de Seckar
1
Cel mai usor este folosind biblioteca algorithm. Intai iti sortezi vectorul de litere care este cuvantul tau, iar apoi apelezi functia next_permutation intr-un while. next_permutation o sa iti returneze true cat timp inca exista o permutare lexicografica a elementelor din vectorul pe care il dai prin care nu a trecut, iar cand a ajuns la ultima permutare, adica ordonare invers lexicografica completa o sa retunreze false si se va iesi din while. In while nu ai decat sa afisezi cuvantul:

Anexe:

ghiurcutaandrep2t1dz: problema trebuie sa o fac prin metoda backtracking.Apreciez ideea cu sortarea lexicografica dar ma asteptam la ceva permutari de litere.
Seckar: next_permutation iti va da urmatoarea permutare in ordine lexicografica. De acea daca vrei toate permutarile va trebui intai sa sortezi elementele cuvantului, fie el si sir de caractere sau de orice altceva.
Alte întrebări interesante