0
How about a Perl compatible regular expression for grep? I guess that's an algorithm.
This one will search for seven-letter palindromes:
grep -P '(?=^.{7}$)(.)(.)(.).\3\2\1' /path/to/your/dictionary
The -P flag let's grep recognize perl compatible regular expressions (PCRE).
The (?=^.{7}$) looks ahead to make sure it's matching a seven-letter word.
The \1 is a backreference to the first (.) which matches any character. But now it has to match it again, except we're asking it to match in reverse order, \3\2\1 instead of \1\2\3.
Then we have a single dot for the fourth letter, which will match any character.
Just add or subtract subexpressions "(.)" as needed, along with the appropriate number backreferences "/1" to find palindromes.
This is the output from grepping the TWL (the Scrabble dictionary):
deified
halalah
reifier
repaper
reviver
rotator
sememes
1 answer