我对Jon Limjap 的面试事故感到好奇,并开始寻找有效的方法来进行回文检测。我检查了回文高尔夫答案,在我看来,答案中只有两种算法,反转字符串并从尾部和头部检查。
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 分配给每个线程或处理器。
有什么更好的方法?
你知道任何?