Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Golf challange: match U.S. State names

by merlyn (Sage)
on Jun 06, 2001 at 06:57 UTC ( #86106=note: print w/ replies, xml ) Need Help??


in reply to Golf challange: match U.S. State names

118 chars:

sub state { 1&index" AKALCAARAZCOCTDCDEFLGAHIIAIDILINKSKTKYLAMAMDMEMIMNNCMOMSMTOHN +DNENHNJNMPANVNYOKORRISCSDTNTXUTVAVTWAWIWVWY",pop }
And it's 117 chars if you replace pop with $_, as the original rules ask.

The character string was constructed to ensure that a valid state would never match a non-valid boundary. It was easier than I thought:

#!/usr/bin/perl use strict; $|++; my @states = qw( AK AL AR AZ CA CO CT DC DE FL GA HI IA ID IL IN KS KT KY LA MA MD ME MI MN MO MS MT NC ND NE NH NJ NM NV NY OH OK OR PA RI SC SD TN TX UT VA VT WA WI WV WY ); my %states = map { $_ => 1 } @states; try("", \@states); sub try { print "try: $_[0] @{$_[1]}\n"; my $prefix = shift; my @later = @{+shift}; unless (@later) { print "WINNER: $prefix\n"; exit; } for my $i (0..$#later) { my $prefix2 = "$prefix$later[$i]"; if (length $prefix2 < 3 or not $states{substr($prefix2, -3, 2)}) { ## worth recursing try($prefix2, [@later[0..$i-1, $i+1..$#later]]); } } }

-- Randal L. Schwartz, Perl hacker


Comment on Re: Golf challange: match U.S. State names
Select or Download Code
silly meowchow
by NodeReaper (Curate) on Jun 06, 2001 at 07:55 UTC

    Reason: (MeowChow) replicant nodes must die!

    For more information on this node visit: this

Re: Re: Golf challange: match U.S. State names
by MeowChow (Vicar) on Jun 06, 2001 at 07:56 UTC
    This has two problems: on a non-match, index will return -1, which, ANDed with 1, returns 1, so virtually any string will match. This sub will also match strings like "ALC" or just "A".
       MeowChow                                   
                   s aamecha.s a..a\u$&owag.print

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (6)
As of 2014-12-25 08:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (159 votes), past polls