Autorské riešenie
[stiahni]

Táto úloha môže vyzerať na prvý pohľad ťažká. Ak sa však zamyslíme nad riešením tejto úlohy, zistíme, že až taká ťažká nie je.

Všimnime si napr. nasledujúce meno korytnačky: korypap. Celkom rýchlo prídeme na to, že ak doplníme začiatok tohto mena (kory) na koniec a ešte ho otočíme, dostaneme palindróm: korypapyrok. Otázka je, ako prísť na to, koľko treba zobrať zo začiatku. Aj toto poľahky vyriešime. Treba zobrať toľko, aby zvyšok, ktorý zostane bol palindróm. Ak zoberieme kory z mena korypap zostane len pap. Ale to je už palindróm. Podobne môžeme postupovať aj my.

Postupne budeme odoberať písmenká zo začiatku mena korytnačky. Ak v nejakom momente zvyšok mena už bude palindróm, našli sme to, čo sme hľadali.

 začiatok   je zostatok 
 palindróm?
 
prilepiť
 na koniec
 
  korypap  
k orypap  
ko rypap  
kor ypap  
kory pap yrok
 ↓
korypapyrok

Presne takto budeme postupovať aj v našom programe.

Riešenie úlohy môže vyzerať nasledovne:

viem dopln :meno
 urobTu "zaciatok "

 kym [:meno <> prevrat :meno] [
  urobTu "zaciatok vlozPo prvy :meno :zaciatok
  urobTu "meno bezPr :meno
 ]

pis (slovo :zaciatok :meno prevrat :zaciatok)
koniec

Vaše zaujímavé riešenia a najčastejšie chyby

Mnohí z vás sa určite chytia za hlavu, keď si pozrú autorské riešenie. Pri tejto úlohe bolo dôležité dobre porozmýšľať o tom, ako úlohu riešiť. A až potom začať písať samotný kód.

Najčastejšou chybou bolo, že ste úlohu riešili nedôsledne. Keď pôvodné meno korytnačky bolo palindróm, aj tak ste ho doplnili na ďalší palindróm. Samozrejme zbytočne. Niektoré vaše programy boli príliš neefektívne. Vytvárali ste si veľa premenných a dosť nešikovne ste s nimi manipulovali.