Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: minimal superstrings/maximal substrings

by LanX (Archbishop)
on Aug 22, 2019 at 12:57 UTC ( #11104855=note: print w/replies, xml ) Need Help??


in reply to minimal superstrings/maximal substrings

This creates the full graph before filtering to your length requirements
use strict; use warnings; use Data::Dump qw/pp dd/; my @words = data(); my (%lower,%super); for my $word ( sort {length $a <=> length $b} @words ) { SUPER: for my $sub ( keys %lower ) { if ( -1 != index ($word,$sub) ) { for ( @{$super{$sub}} ) { next SUPER if -1 < index ($word,$_) } push @{$super{$sub}},$word; } } $lower{$word}=1; } #pp \%super; for my $key ( keys %super ) { if (length $key >8) { delete $super{$key}; next; } $super{$key} = [grep { length $_ > 8 } @{$super{$key}}]; } pp \%super; sub data { return "funk", "fungibles", "funneling", "fundraiser", "fungi", "functions", "fun", "fundamental", "functioned", "functional", "functioning", "funicular", "funnel", "functionaries", "functionary", "funkiness", "function", "fungicidal", "fungible", "fungicide", "fundraising", "funniness", "fund", "funereal", "funereally","fundraising-team", }

{ fun => ["funicular", "funniness"], function => [ "functions", "functioned", "functional", "functioning", "functionary", "functionaries", ], fund => ["fundraiser", "fundamental", "fundraising"], funereal => ["funereally"], fungi => ["fungicide", "fungicidal"], fungible => ["fungibles"], funk => ["funkiness"], funnel => ["funneling"], }

Disclaimer: data mostly stole from tybalt89 :)

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2019-09-20 19:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    The room is dark, and your next move is ...












    Results (268 votes). Check out past polls.

    Notices?