Python代码如下:
def solution(S, P, Q):
# write your code in Python 2.6
dict = {'A':0, 'C':1, 'G':2, 'T':3}
nuclSumTable = [[0 for col in range(len(S)+1)] for row in range(4)]
#print nuclSumTable
for value in enumerate(S):
for i in xrange(0, 4):
nuclSumTable[i][value[0]+1] = nuclSumTable[i][value[0]]
nuclSumTable[dict[value[1]]][value[0]+1] = nuclSumTable[dict[value[1]]][value[0]]+1
# query based on sum tables
#print nuclSumTable
results = [0]*len(P)
for i in xrange(0, len(P)):
for nuclIndex in xrange(0, 4):
if nuclSumTable[nuclIndex][Q[i]+1] > nuclSumTable[nuclIndex][P[i]]:
results[i] = nuclIndex+1
break
return results
pass

本文介绍了一个使用Python实现的基因序列分析算法。该算法通过构建核苷酸累加表来高效查询区间内出现的最小重要性核苷酸。通过对输入字符串S及一系列区间[P, Q]的处理,可以找出每个区间内的最小显著核苷酸。

被折叠的 条评论
为什么被折叠?



