od Dr.Eddy » 18. 6. 2010 12:09
Ano. Ale doporucuji ti si to nejdrive sam rozmyslet, jde celkem o jednoduchou myslenku.
Udelas si pole cisel (v tomto pripade 64-bitovych integeru), ktere bude dlouha tolik, kolik je znaku na prvnim radku, tzn. max 255. Kazda bunka bude reprezentovat jeden znak na tom prvnim radku. Pak zacnes cist ten soubor znak po znaku. Pokud nacteny znak je v prvnim radku, tak prochazis pole od konce a do kazde bunky, ktera reprezentuje ten znak (kdyz se v tom prvnim radku vyskytuje vicekrat stejny znak), prictes cislo, ktere je hned pred nim (smerem od zacatku). Do cisla na prvni pozici v poli pricitas vzdy 1. Az cely soubor projdes, tak na posledni pozici v poli budes mit vysledek.
Takze pro ten text: ASOGSOSF
a hledana podposloupnost je: SOS
SOS
0 0 0
1 0 0
1 1 0
1 1 0
2 1 1
2 3 1
2 3 4
2 3 4
takze text obsahuje 4x SOS.
Ano. Ale doporucuji ti si to nejdrive sam rozmyslet, jde celkem o jednoduchou myslenku.
Udelas si pole cisel (v tomto pripade 64-bitovych integeru), ktere bude dlouha tolik, kolik je znaku na prvnim radku, tzn. max 255. Kazda bunka bude reprezentovat jeden znak na tom prvnim radku. Pak zacnes cist ten soubor znak po znaku. Pokud nacteny znak je v prvnim radku, tak prochazis pole od konce a do kazde bunky, ktera reprezentuje ten znak (kdyz se v tom prvnim radku vyskytuje vicekrat stejny znak), prictes cislo, ktere je hned pred nim (smerem od zacatku). Do cisla na prvni pozici v poli pricitas vzdy 1. Az cely soubor projdes, tak na posledni pozici v poli budes mit vysledek.
Takze pro ten text: ASOGSOSF
a hledana podposloupnost je: SOS
SOS
0 0 0
1 0 0
1 1 0
1 1 0
2 1 1
2 3 1
2 3 4
2 3 4
takze text obsahuje 4x SOS.