题解 | #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])






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

相关推荐

02-01 19:48
门头沟学院 Java
神哥了不得:(非引流)直接暑期吧,没时间日常了,老鱼简历把水印去了,或者换个模板,简历字体大小都不太行,建议换2个高质量的项目,面试应该还会再多一些
点赞 评论 收藏
分享
2024-12-27 23:45
已编辑
三江学院 Java
程序员牛肉:死局。学历+无实习+项目比较简单一点。基本就代表失业了。 尤其是项目,功能点实在是太假了。而且提问点也很少。第一个项目中的使用jwt和threadlocal也可以作为亮点写出来嘛?第二个项目中的“后端使用restful风格”,“前端采用vue.JS”,“使用redis”也可以作为亮点嘛? 项目实在是太简单了,基本就是1+1=2的水平。而你目标投递的肯定也是小厂,可小厂哪里有什么培养制度,由于成本的问题,人家更希望你来能直接干活,所以你投小厂也很难投。基本就是死局,也不一定非要走后端这条路。可以再学一学后端之后走测试或者前端。 除此之外,不要相信任何付费改简历的。你这份简历没有改的必要了,先沉淀沉淀
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客企业服务