[ALGORYTMIKA] Anagramy

0

Mój problem:
Musze napisać program, który sprawdzi czy dany wyraz jest angramem czyli np.

Podaje wyraz 'kretes', nastepnie podaje drugi wyraz 'sekret' (nie wazne w jakiej kolejnosci);

teraz moj program musi sprawdzic wszystkie kombinacje ułożenia liter z pierwszego wyrazu i sprawdzic czy w którejs kombinacji z 'kretes' mozna utworzyc 'sekrert'.

Doszedłem do tego, ze petla sprawdzenia musi wykonać się n!, gdzie n to ilość liter wyrazu - czyli jest n! kombinacji ułożenia liter tego wyrazu.

Jednak nie mam pojecia jak to oprogramowac... Prosze o pomoc, ewentualnie wskazowki.

0

Nie kombinuj. Weź dwa wyrazy, tablice znaków, posortuj i sprawdź czy posortowane ciągi są takie same. Złożoność O(n) i do tego złożoność sortowania. Zatem i tak jest szybsze. Względnie sprawdź w pętli czy wszystkie litery słowa A występują w słowie B, nie zapomnij o usuwaniu wykorzystanych liter.

0

problem brzmi: czy jest anagramem.. nie czy jest anagramem 'tego' slowa.. tak wiec do tego dochodzi sprawdzanie w slowniku

0

Hmmm Koziołek ma racje... tzn to jest chyba najlepszy sposób :) Dziękuję Ci bardzo...

moze troche zle opisalem zadanie... bo to ma byc anagram 'tego' slowa - czyli sprawdzenie jest potrzebne dla dwoch liter.

jeszcze raz dziekuje.

0

w takim razie dokladnie tak:)

0

@quetzalcoatl, metoda dla całego słownika jest jeszcze prostsza. sortujesz litery w każdym słowie a następnie sortujesz posortowane słowa. anagramy, jako równe sobie, wylądują w ładnych zbiorach :)

0

no, wiesz, nie wpadlbym :))))

1 użytkowników online, w tym zalogowanych: 0, gości: 1