Eficiência de detecção de palíndromo

Fiquei curioso porContratempo da entrevista de Jon Limjap e começou a procurar maneiras eficientes de fazer a detecção de palíndromo. Eu verifiquei opalindrome golf respostas e parece-me que nas respostas existem apenas dois algoritmos, invertendo a string e verificando da cauda e da cabeça.

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]

Eu acho que nenhum desses métodos é usado na detecção de palíndromos exatos em enormes sequências de DNA. Eu olhei em volta e não encontrei nenhum artigo gratuito sobre o que poderia ser uma maneira ultra eficiente.

Uma boa maneira é paralelizar a primeira versão em uma abordagem de dividir e conquistar, atribuindo um par de matrizes de caracteres 1..n e length-1-n..length-1 a cada encadeamento ou processador.

Qual seria a melhor maneira?

Você conhece algum?

questionAnswers(9)

yourAnswerToTheQuestion