Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: (Golf) mobile phone numbers - words

by Masem (Monsignor)
on May 29, 2001 at 17:32 UTC ( #83918=note: print w/replies, xml ) Need Help??

in reply to (Golf) mobile phone numbers -> words

And as a starting solution, here's mine at 133 characters:
my @d = qw( respect strength ); # yeah, weak dictionary, sue me! my $n = "7377328"; my %a = ( 1=>[], 2=>['a','b','c'], 3=>['d','e','f'], 4=>['g','h','i'], 5=>['j','k','l'], 6=>['m','n','o'], 7=>['p','q','r','s'], 8=>['t','u','v'], 9=>['w','x','y','z'] ); my @r = words( $n, \%a, \@d ); print join ",",@r; print "\n"; sub words{ #234567890123456789012345678901234567890123456789012345678901234567890 +123456789012345678901234567890123 my($n,$a,$d,@l,@b,$c,$e)=@_;@b=split//,$n;@a=('');for(@b){$c=$_;@a=map +{$e=$_;map{$e.$_}@{$a->{$c}}}@a}; grep{$c=$_;grep{$c eq$_}@$d}@a }

Note that if %a was an array, it would only change a set of curly braces to square ones, and would not change the character count.

update ok, this only handles the case of matching exactly one word from the dictionary; more work would be needed to find any word combo.

Dr. Michael K. Neylon - || "You've left the lens cap of your mind on again, Pinky" - The Brain

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://83918]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2020-10-01 22:43 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (23 votes). Check out past polls.