题解 | #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
全部评论
没判断是否是子串
1 回复 分享
发布于 2022-06-10 20:03
🐂
点赞 回复 分享
发布于 2022-02-07 22:20
666666
点赞 回复 分享
发布于 2022-03-22 15:10
count用的很妙
点赞 回复 分享
发布于 2022-04-25 14:11
count不能保证是子串吧。只能保证有,但不能保证是连续的
点赞 回复 分享
发布于 2022-06-07 23:19
没有说明是不是子串
点赞 回复 分享
发布于 2022-06-27 20:06
子串长度要求是5的话,如果是CCCCCCGCCC子串先出的肯定是CCCCC而不会是含有CG的CGCCC,只不过试算用例也没有这种情况而已,所以楼主代码才能过
点赞 回复 分享
发布于 2022-08-16 18:31
没有判断是否是符合规则的子串啊
点赞 回复 分享
发布于 2022-09-04 23:19 河南
你说的是必须输出第一次出现的字串吗,if GC_counts > max_counts:这行代码肯以保证输出的必定是第一次出现的.因为是大于,所以后续出现的相同大小的字串不会被记录下来.
点赞 回复 分享
发布于 2022-10-25 16:57 河北
应该可以在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 德国
题目那个是举例说明 ACGT的子串有ACG CG CGT等等,意思应该就是连续且长度大于等于二,小于等于限定长度就行了。不是说子串必须要含有这几个,没有表达清楚
点赞 回复 分享
发布于 09-06 21:23 江苏

相关推荐

不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
25 10 评论
分享
牛客网
牛客企业服务