Jon Limjap のインタビュー事故に興味を持ち、回文検出を効率的に行う方法を探し始めました。回文ゴルフの回答を確認しましたが、回答には 2 つのアルゴリズムのみがあり、文字列を逆にして、テールとヘッドからチェックしているように思えます。
def palindrome_short(s):
length = len(s)
for i in xrange(0,length/2):
if s[i] != s[(length-1)-i]: return False
return True
def palindrome_reverse(s):
return s == s[::-1]
これらの方法はどちらも、巨大な DNA 配列の正確なパリンドロームの検出には使用されていないと思います。少し調べてみましたが、これを行うための非常に効率的な方法についての無料の記事は見つかりませんでした。
良い方法は、最初のバージョンを分割統治法で並列化し、char 配列 1..n と length-1-n..length-1 のペアを各スレッドまたはプロセッサに割り当てることです。
より良い方法は何でしょうか?
何でも知ってますか?