题解 | #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,使用了切片,所以在这里报错了?