题解 | #DNA序列#

DNA序列

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

"""
1、分析题意,找思路
给一个字符串和字串的长度,从字符串中找到GC比例最高的字串。如果由多个,就输出最左边的那个
(1)字符串长度等于n,字串长度等于5
依次遍历字符串,
第一个到第5个,
第二个到第6个,
第三个到第7个,
第n-5个到第n个,

第一个字串中,出现GC的概率,
第二个字符串,出现GC的概率,
第三个字符串,出现GC的概率,

把概率放到 字典中,
【字串1,字串2,字串3,字串4,字串n】
【概率1,概率2,概率3,概率4,概率n】

找到max(概率)的最大值
遍历所有概率,将等于max()的字符串都放到新的列表中,我们取列表中的第一个值就可以了


2、分析题意,找实现代码的方式
这我有用到debug,在第一个for循环中报错了,截取字符串我写错了,range我少加个1


"""
 
s = input()
n = int(input())

# 将字符串和对应的概率放到 字典中
dic = {}
for i in range(len(s)-n+1):
    # 第一个字符串
    s1 = s[i: i+n]
    # 第一个字符串中GC的概率
    gailv = (s1.count("G")+s1.count("C"))/n
    dic[s1] = gailv

# 找到概率的最大值
a = max(dic.values())

# 将概率等于最大值的字符串放到 新列表中,取第一个元素即可
b = []
for k,v in dic.items():
    if v == a:
        b.append(k)
print(b[0])






#字节跳动数据分析师面经#
全部评论

相关推荐

点赞 2 评论
分享
牛客网
牛客企业服务