in reply to (Golf) Fragment Reassembly
Ok, here's my current solution at 192 chars.
update1: trimmed another 4 chars from the i sub, and stopped clobbering globals:sub a{$#_?(sort{length$a<=>length$b}map{my$s=$_;my@l=grep{$s ne $_}@_; +map{my$t=$_;my@m=grep{$t ne $_}@l;a(i($s,$t),@m)}@l}@_)[0]:pop} sub i{($_,$t)=@_;chop$t while!s/\Q$t\E$/$_[1]/&&''ne$t;$_;} print a qw(logger gerbil log analog); print "\n"; print a qw(GATTACA ATTACA GATT AAGAT CCC);
... if we're clobbering $_, we can trim another 5:sub i{my($s,$t)=@_;chop$t while$s!~s/\Q$t\E$/$_[1]/;$s}
update2: 163 chars, strict and global-clean, all in one sub, named assemble (or 156 if it's named a):sub i{($_,$t)=@_;chop$t while!s/\Q$t\E$/$_[1]/;$_}
sub assemble{$#_?(sort{length$a<=>length$b}map{my$s=$_;my@l=grep$s ne$ +_,@_;map{my($t,$u)=($s,$_);my@m=grep$u ne$_,@l;chop$u while$t!~s/\Q$u +\E$/$_/;assemble($t,@m)}@l}@_)[0]:pop}
MeowChow s aamecha.s a..a\u$&owag.print
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: (Golf) Fragment Reassembly
by dws (Chancellor) on May 03, 2001 at 11:11 UTC |
In Section
Meditations