题解 | #DNA序列#

DNA序列

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

a = input()
b = int(input())

def gcr(stra):
    n=(stra.count('G')+stra.count('C'))/len(stra)
    return n
c = ''
count = 0
if b>=len(a):
    c=a
else:
    for i in range(len(a)-b):
        if gcr(a[i:i+b]) > count:
            count = gcr(a[i:i+b])
            c = a[i:i+b]

print(c)

有特殊情况

1:当数字大于字符串长度时,直接输出字符串

2:使用切片时,最后的那个切片有可能不完整,但是它的gc比例有可能最高,所以要在for循环时,将range()减去输入的数字。

但是在其他的答案区,我看到了有的代码不用考虑切片越界,说是python不会越界,他的代码是通过的,但是当我不考虑切片不完整,或者说越界时,会出错。不懂原理,可能是我的自定义函数gcr,使用了切片,所以在这里报错了?

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 12:22
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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