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



全部评论

相关推荐

杨柳哥:这不是普通人,那这个钱的是天才
点赞 评论 收藏
分享
牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务