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



全部评论

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务