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



全部评论

相关推荐

27届毕业,最近想找一段大厂实习,感觉简历有些问题,好多都不给面,求大佬们指点,最近好焦虑
重生之我学Java干...:我从后端的角度分析一下你的第一个项目,我感觉亮点不是很突出。因为我是因为组内有需求,临时上手学react干活。我用到的技术基本就cover你那个智慧园区管理平台的很多亮点了。那作为比较专业的前端,你上述的内容是不是有点单薄呢。感觉还得包装
点赞 评论 收藏
分享
10-01 09:50
门头沟学院 Java
肖先生~:这个人真的很好,点赞
点赞 评论 收藏
分享
刷牛客的我很豁达:你是不是对算法有什么误解,你没手握两篇顶刊顶会,还想搞算法岗,有顶刊顶会在算法岗算才入门
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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