http://qs321.pair.com?node_id=382591


in reply to Finding longest palindrome from a string

Sorry, I can't name the sub after myself since ;-) doesn't compile :)
sub cLive { my $rev = reverse $_[0]; my $len=''; my $d; for (0..length($_[0])-1) { my $c= join'',map { substr($rev,$_,1) eq substr($_[0],$_,1) ? +1 : 0 } 0..length($_[0])-1; my $match = (sort {length($a)<=>length($b)} $c =~ /(1+)/g)[-1] +; $match>$len and $len=$match and $d=$c; $rev = substr($rev,1).substr($rev,0,1); } $d=~s/(.*)($len).*/substr($_[0],length($1),length($len))/e; return $d; }
cLive ;-)

ps - if more than one longest palindrome, first is returned.

Replies are listed 'Best First'.
My name doesn't compile (was Re: Finding longest palindrome ...)
by hv (Prior) on Aug 13, 2004 at 12:09 UTC

    my $name = 'cLive ;-)'; no strict 'refs'; *$name = sub { print "This is not my name\n" }; $name->();

    Hugo