Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Implementační test 31.1.2022

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í.

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

courses/b0b99prpa/implementace.txt · Last modified: 2022/01/31 08:46 by viteks