in reply to (Golf) Cryptographer's Tool #1
Here's mine. Not particularly interesting, really, and probably
missing out on a few standard golf tricks.
67 chars.sub c {my(@a,%h,$i)=split//,pop;my$s=pop;$s=~s!(.)!$h{$1}||=$a[$i++]!g +e;$s}
Update: got rid of one character by using substr:
66 chars.sub c {my($a,%h,$i)=pop;my$s=pop;$s=~s!(.)!$h{$1}||=substr$a,$i++,1!ge +;$s}
Update 2: if you don't need strict:
61.sub c {($s,$a)=@_;my(%h,$i);$s=~s!(.)!$h{$1}||=substr$a,$i++,1!ge;$s}
Update 3: Oh, and the reason I'm still initializing %h and $i is so that the sub will work on repeated invocations. If we don't *have* to do that, this will do:
51.sub c {($s,$a)=@_;$s=~s!(.)!$h{$1}||=substr$a,$i++,1!ge;$s}
Update 4: Use $_:
47.sub c {($_,$a)=@_;s!(.)!$h{$1}||=substr$a,$i++,1!ge;$_}
Update 5: Okay, so none of these actually *work* per the spec. Thanks, tilly. :)
|
---|
Replies are listed 'Best First'. | |
---|---|
Re (tilly) 2: (Golf) Cryptographer's Tool #1
by tilly (Archbishop) on Jun 20, 2001 at 01:21 UTC | |
by chipmunk (Parson) on Jun 20, 2001 at 01:24 UTC | |
by tilly (Archbishop) on Jun 20, 2001 at 01:37 UTC | |
by btrott (Parson) on Jun 20, 2001 at 01:31 UTC |
In Section
Meditations