题解 | #DNA序列#

DNA序列

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

while True:
    try:
        DNA = input()
        length = int(input())
        max_counts = 0
        max_DNA = []
        for i in range(len(DNA)-length+1):
            GC_counts = DNA.count('G',i,i+length) + DNA.count('C',i,i+length)
            if GC_counts > max_counts:
                max_counts = GC_counts
                max_DNA = DNA[i:i+length]
        print(max_DNA)
    except:
        break
全部评论
没判断是否是子串
2 回复 分享
发布于 2022-06-10 20:03
没有判断是否是符合规则的子串啊
1 回复 分享
发布于 2022-09-04 23:19 河南
max_DNA = [],然后max_DNA = DNA[i:i+length],这个能不能大佬解释一下,空列表可以直接赋值字符串吗,然后就会直接变成字符串输出吗
点赞 回复 分享
发布于 03-20 11:24 江苏
题目那个是举例说明 ACGT的子串有ACG CG CGT等等,意思应该就是连续且长度大于等于二,小于等于限定长度就行了。不是说子串必须要含有这几个,没有表达清楚
点赞 回复 分享
发布于 2024-09-06 21:23 江苏
应该可以在GC_counts = DNA.count('G',i,i+length) + DNA.count('C',i,i+length)语句前加:if 'C' in DNA[i:i+length] and 'G' in DNA[i:i+length]: 来判断是否为子串
点赞 回复 分享
发布于 2023-05-01 21:58 德国
你说的是必须输出第一次出现的字串吗,if GC_counts > max_counts:这行代码肯以保证输出的必定是第一次出现的.因为是大于,所以后续出现的相同大小的字串不会被记录下来.
点赞 回复 分享
发布于 2022-10-25 16:57 河北
子串长度要求是5的话,如果是CCCCCCGCCC子串先出的肯定是CCCCC而不会是含有CG的CGCCC,只不过试算用例也没有这种情况而已,所以楼主代码才能过
点赞 回复 分享
发布于 2022-08-16 18:31
没有说明是不是子串
点赞 回复 分享
发布于 2022-06-27 20:06
count不能保证是子串吧。只能保证有,但不能保证是连续的
点赞 回复 分享
发布于 2022-06-07 23:19
count用的很妙
点赞 回复 分享
发布于 2022-04-25 14:11
666666
点赞 回复 分享
发布于 2022-03-22 15:10
🐂
点赞 回复 分享
发布于 2022-02-07 22:20

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
评论
25
10
分享

创作者周榜

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