题解 | #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))