python借助队列存储移动窗口内的下标,时间复杂度O(n)

DNA序列

http://www.nowcoder.com/questionTerminal/e8480ed7501640709354db1cc4ffd42a

while True:
    try:
        s = input().strip()
        k = int(input())
        queue = []
        for i in range(k):
            if s[i] in 'CG':
                queue.append(i)
        max_ratio = len(queue)
        res = s[:k]
        for i in range(k, len(s)):
            if s[i] in 'CG':
                queue.append(i)
            if queue[0] <= i-k:
                queue.pop(0)
            if len(queue) > max_ratio:
                max_ratio = len(queue)
                res = s[i-k+1:i+1]
        print(res)
    except:
        break
全部评论

相关推荐

10-02 19:29
已编辑
浙江科技大学 运营
点赞 评论 收藏
分享
ResourceUt...:楼主有自己的垃圾箱,公司也有自己的人才库
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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