Hackerrank – Separate the Numbers

Hackerrank – Popis problému

Celý popis zadania sa nacháza – Hackerrank.

Riešenie

Pre každé číslo robím nasledujúci postup:

Príklad pre 1234
Určím si počiatok skúmania. Začnem prvým jednociferným číslom od začiatku:
1
a skúmam zvyšok reťazca. Ten bude 234.

Ďalej skúmam každú číslicu väčšiu ako 1 vo zvyšku reťazca 234.
Druhá číslica väčšia ako 1 je 2
Tá sa nachádza na začiatku 234>. Urobím si zvyšok, ten bude 34.
Nasledovať by mala číslica 3, tá sa nachádza vo zvyšku 34. A nasleujúci zvyšok bude 4.
Potom nasleduje číslica 4 a tá je rovnaká ako zvyšok, čiže to bude beautiful string.

Príklad 101103
Určím si počiatok skúmania. Začnem prvým jednociferným číslom od začiatku:
1
a skúmam zvyšok reťazca. Ten bude 01103.
Nasledovať by mala číslica 2, ale zvyšok na ňu nezačína. Pokúsim sa začať dvojciferným číslom.

Ak začnem 10, zvyšok reťazca bude 1103.
Nasleduje číslo 11, to je na začiatku reťazca a zvyšok bude 03.
Naledovať by malo číslo 12, ale to nie je zhodné s 03.

Tak skúsim číslo 101 a zvyšok bude 103.
Nasledovať by malo 102, ale to nie je rovnaké ako 103, tak 101103 prehlásim, že nie je beautiful.

Javascript riešenie nefunguje pre čísla 9007199254740992

Vytvoril som riešenie v týchto programovacích jazykoch:

Všetky riešenia sú dostupné aj na mojom GitHub profile.

Java

Javascript

Leave a Reply

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *