in reply to Find common prefix from a list of strings
Use a Trie.
sub insert { my $trie=shift; my $str=shift; $trie=$trie->{$_}||={} foreach (split //,$str); } sub common { my $trie=shift; my $common=""; while (1==scalar keys %$trie) { my $char=(keys %$trie)[0]; $common.=$char; $trie=$trie->{$char}; } $common; } my %trie; insert(\%trie,$_) foreach qw(model4run1 model2run1 model4run2 model1ru +n1); print common(\%trie);
But it could be argued I have Trie's on my brain. :-)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Find common prefix from a list of strings
by AnomalousMonk (Archbishop) on Feb 24, 2014 at 17:42 UTC | |
by demerphq (Chancellor) on Apr 11, 2016 at 18:11 UTC |