<?xml version="1.0" encoding="windows-1252"?>
<node id="382686" title="Re: Finding longest palindrome from a string" created="2004-08-13 10:31:12" updated="2005-07-03 18:10:09">
<type id="11">
note</type>
<author id="170442">
jdporter</author>
<data>
<field name="doctext">
I hate writing Perl that looks like Pascal.  Oh well...

&lt;table bgcolor="#000000"&gt;&lt;tr&gt;&lt;td&gt;&lt;font color="#000000"&gt;
&lt;code&gt;
sub JDP::longest_palindrome # operates on $_
{
	my $pal;
	for my $i ( 0 .. length($_) )
	{
		last if defined($pal) &amp;&amp; length($_)-$i &lt; length($pal);
		my $j = rindex $_, substr( $_, $i, 1 );
		while ( $j &gt; $i )
		{
			my $s = substr $_, $i, $j-$i+1;
			if ( $s eq reverse $s ) # it's a palindrome
			{	# but is it the longest yet found?
				$pal = $s unless defined $pal &amp;&amp; length($pal) &gt; length($s);
			}
			$j--;
			$j = rindex $_, substr( $_, $i, 1 ), $j;
		}
	}
	$pal
}

&lt;/code&gt;
&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;&lt;small&gt;Edit by [tye], change PRE to CODE around long lines, close FONT tag&lt;/small&gt;&lt;/p&gt;
</field>
<field name="root_node">
382567</field>
<field name="parent_node">
382567</field>
</data>
</node>
