[linux-support] Manchmal ist derkürzere Weg nicht der beste: Perl Beispiele

Marco Steinacher mailinglists at websource.ch
Thu Oct 7 12:18:17 CEST 2004


miLosh wrote:
> |
> | Hier habe ich auch ein Beispiel. Das folgende Program herstellt
> | Palindrome:
> |
> | $ perl -e '$_=($a=reverse$;=$a.pop)|$"x$$a++.$;.$/until/$;/;print' abcde
> |
> | edcbabcde
> hat leider nen kleinen schoenheitsfehler, es stellt den input anfangs
> verkehrt herum dar. und:

Das ist IMO kein Fehler.

> wie gesagt, find ich nen lustigen wettbewerb. da ich kein perl kann, es
> aber liebe auf der shell rumzuhacken, habe ich eine loesung mit awk
> geschrieben:
> 
> milosh at orbit plexus $ echo hallo | awk '{c=length-1;i=0;if
> (substr($0,c,1)==substr($0,length,1)) {c--}
> while(i<c){$0=sprintf("%s%s",$0,substr($0,c-i,1));i++};print $0; exit}'
> hallollah

Dein Programm erfüllt die Regeln leider nicht ganz:
Erstens muss das Programm den Input als Argument bekommen und zweitens 
(wichtiger) hält es den Tests [1] nicht stand. Das Programm muss das 
_kürzeste_ Palindrom liefern. Test Nr. 2 besteht dein Programm daher nicht:
Input: aab
Dein Output: aabaa
Richtiger, kürzester Output: baab

[1] http://terje.perlgolf.org/golf/palintest.pl

Gruss
Marco
-- 
WebSource Internet Services - www.websource.ch
Kontakt/PGP-Keys: www.websource.ch/kontakt
PGP: 0x0B431D6B - 0BCA FD08 2859 FF1A 4B42 29BD DD91 3A67 0B43 1D6B


More information about the Linux-support mailing list