Longest palindromic substrings: Difference between revisions

Content added Content deleted
(→‎{{header|Raku}}: Make it easier to pass in a file name to operate on if desired. Optimize a bit. No real discernible benefit for defaults but speed up digits of pi by ~ 30%)
m (→‎{{header|Raku}}: Other micro optimizations. Fix edge case error)
Line 505: Line 505:
loop {
loop {
quietly last if $rev > $i or $rev && (@chars[$i - $rev] ne @chars[$i + $fwd]);
quietly last if $rev > $i or $rev && (@chars[$i - $rev] ne @chars[$i + $fwd]);
++$rev;
$rev = $rev + 1;
++$fwd;
$fwd = $fwd + 1;
}
}
@cpfoa[(my $pal = @chars[$i - $rev ^..^ $i + $fwd].join).chars].push: $pal if $rev + $fwd > 2;
@cpfoa[(my $pal = @chars[$i - $rev ^..^ $i + $fwd].join).chars].push: $pal if $rev + $fwd > 2;
$i = $i + $fwd || 1;
$i = $i + 1;
}
}


Line 528: Line 528:
0045445400 0136776310 1112552111 3517997153 5783993875 6282662826 7046006407 7264994627 8890770988
0045445400 0136776310 1112552111 3517997153 5783993875 6282662826 7046006407 7264994627 8890770988
019161910 020141020 023181320 036646630 037101730 037585730 065363560 068363860 087191780 091747190 100353001 104848401 111262111 131838131 132161231 156393651 160929061 166717661 182232281 193131391 193505391 207060702 211878112 222737222 223404322 242424242 250171052 258232852 267919762 272636272 302474203 313989313 314151413 314424413 318272813 323212323 330626033 332525233 336474633 355575553 357979753 365949563 398989893 407959704 408616804 448767844 450909054 463202364 469797964 479797974 480363084 489696984 490797094 532121235 549161945 557040755 563040365 563828365 598292895 621969126 623707326 636414636 641949146 650272056 662292266 667252766 681565186 712383217 720565027 726868627 762727267 769646967 777474777 807161708 819686918 833303338 834363438 858838858 866292668 886181688 895505598 896848698 909565909 926676629 927202729 929373929 944525449 944848449 953252359 972464279 975595579 979202979 992868299</pre>
019161910 020141020 023181320 036646630 037101730 037585730 065363560 068363860 087191780 091747190 100353001 104848401 111262111 131838131 132161231 156393651 160929061 166717661 182232281 193131391 193505391 207060702 211878112 222737222 223404322 242424242 250171052 258232852 267919762 272636272 302474203 313989313 314151413 314424413 318272813 323212323 330626033 332525233 336474633 355575553 357979753 365949563 398989893 407959704 408616804 448767844 450909054 463202364 469797964 479797974 480363084 489696984 490797094 532121235 549161945 557040755 563040365 563828365 598292895 621969126 623707326 636414636 641949146 650272056 662292266 667252766 681565186 712383217 720565027 726868627 762727267 769646967 777474777 807161708 819686918 833303338 834363438 858838858 866292668 886181688 895505598 896848698 909565909 926676629 927202729 929373929 944525449 944848449 953252359 972464279 975595579 979202979 992868299</pre>
in slightly more than 11 seconds on my system.
in slightly more than 12 seconds on my system.


=={{header|REXX}}==
=={{header|REXX}}==