[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