Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^7: Challenge: 8 Letters, Most Words (top 50)

by BrowserUk (Pope)
on Oct 05, 2013 at 13:39 UTC ( #1057031=note: print w/ replies, xml ) Need Help??


in reply to Re^6: Challenge: 8 Letters, Most Words (top 50)
in thread Challenge: 8 Letters, Most Words

I can't tell if this has been updated.

No. This is completely different code to my first attempt. I thought I had posted it, but it seems that I didn't.

This is the code in its final form:

#! perl -slw use strict; use List::Util qw[ reduce ]; use Data::Dump qw[ pp ]; sub canBeMadeFrom { my( $sigRef, $word ) = @_; for( split '', $word ) { return unless exists $sigRef->{ $_ }; delete $sigRef->{ $_ }; } return 1; } my %stats; while( <> ) { chomp; next if length() > 8; my $sig = join '', sort split '', $_; push @{ $stats{ $sig } }, $_; } print STDERR scalar keys %stats; my @eights = grep length() == 8, keys %stats; my %eights; @eights{ @eights } = delete @stats{ @eights }; print my $i = @eights; for my $eight ( keys %eights ) { printf STDERR "\r%5d '%s'\t", $i--, $eight; my %sig; undef @sig{ split '', $eight }; for my $lesser ( keys %stats ) { next unless canBeMadeFrom( { %sig }, $lesser ); for my $word ( @{ $stats{ $lesser } } ) { push @{ $eights{ $eight } }, $word if canBeMadeFrom( { %si +g }, $word ); } } } my @ordered = sort{ @{ $eights{ $b } } <=> @{ $eights{ $a } } } keys %eights; for( 0 .. $#ordered ) { print "$ordered[ $_ ]: ", scalar @{ $eights{ $ordered[ $_ ] } }; print "@{ $eights{ $ordered[ $_ ] } }"; }

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.


Comment on Re^7: Challenge: 8 Letters, Most Words (top 50)
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (15)
As of 2014-12-18 08:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

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





    Results (47 votes), past polls