Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re: minimal superstrings/maximal substrings

by LanX (Cardinal)
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?

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2020-10-01 02:34 GMT
Find Nodes?
    Voting Booth?
    If at first I donít succeed, I Ö

    Results (172 votes). Check out past polls.