题解 | #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])
#字节跳动数据分析师面经#