Search
Napište funkci, která provede Burrowsovu–Wheelerovu transformaci. Princip transformace spočívá v tom, že se provedou všechny možné rotace zadaného textu (včetně ukončovacího znaku) a tyto dílčí rotace se lexikograficky seřadí. Výstupem tranformace je pak řada posledních písmen jednotlivých rotací.
Funkce ověří, že na vstupu je textový řetězec ukončený znakem ^ - pokud tomu tak není, vhodným způsobem ukončí činnost.
^
Programový přepínač -v způsobí výpis dílčích rotací a seřazených rotací.
-v
Příklad:
int bw_transform (char * vstup, char * vystup, int verbose) { // pokud je verbose = 1, vypisuje funkce jednotlive rotace // pokud doslo k chybe, return 100 // pokud vse dopadlo OK, return 0 }
$ echo "BANANA^" > data.in $ ./a.out -v < data.in rotace: BANANA^ ^BANANA A^BANAN NA^BANA ANA^BAN NANA^BA ANANA^B serazeno: ANANA^B ANA^BAN A^BANAN BANANA^ NANA^BA NA^BANA ^BANANA vysledek: BNN^AAA