题解 | #DNA序列#
DNA序列
http://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
利用双指针进行滑动判断即可
def DNA(s,n):
m = len(s)
# 如果输入的长度比 string的长度大,直接返回
if n >= m:
return s
# 初始化包含GC的最大长度
maxlen = 0
# 创建滑动窗口 i 左边界 j 右边界
i = 0
j = n
# 初始化一个位置用于存储当存在最长长度时 左边界的值
start = 0
# 右边界小于等于string长度时循环
while j <= m:
# 同时存在 C和G的子串
if 'C' in s[i:j] and 'G' in s[i:j]:
curlen = s[i:j].count('C') + s[i:j].count('G')
if maxlen < curlen:
maxlen = curlen
start = i
i += 1
j += 1
return s[start:start+n]
s = input().strip()
n = int(input().strip())
print(DNA(s,n))
联想公司福利 1475人发布
查看8道真题和解析