华为OD机试真题 JavaScript 实现【DNA序列】【牛客练习题】

news2024/9/28 17:30:50

在这里插入图片描述

一、题目描述

一个 DNA 序列由 A/C/G/T 四个字母的排列组合组成。 G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的 GC-Ratio 可能是基因的起始点。

给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。

DNA序列为 ACGT 的子串有: ACG , CG , CGT 等等,但是没有 AGT , CT 等等。

数据范围:字符串长度满足 1≤n≤1000 ,输入的字符串只包含 A/C/G/T 字母。

二、输入描述

输入一个string型基因序列,和int型子串的长度。

三、输出描述

找出GC比例最高的子串,如果有多个则输出第一个的子串。

四、解题思路

  1. 首先读取输入的基因序列和子串长度;
  2. 初始化变量 len 和 result,分别用于记录最高的GC比例和对应的子串;
  3. 使用循环遍历基因序列,每次取长度为 N 的子串;
  4. 对当前子串进行处理,使用正则表达式将非 GC 字母替换为空字符串,得到仅包含 GC 字母的子串 res;
  5. 计算当前子串的GC比例 cur,即 res 的长度除以子串长度;
  6. 如果当前GC比例 cur 大于之前记录的最高比例 len,则更新 len 和 result;
  7. 循环结束后,输出最高GC比例对应的子串 result。

五、JavaScript算法源码

function calculate(dnaSequence, n) {
    let len = 0.0;
    let result = '';

    for (let i = 0; i < dnaSequence.length - n + 1; i++) {
        const subsequence = dnaSequence.substring(i, i + n);
        const gcSubsequence = subsequence.replace(/[^GC]/g, '');
        const cur = gcSubsequence.length / n;

        if (cur > len) {
            len = cur;
            result = subsequence;
        }
    }

    return result;
}

六、效果展示

1、输入

ACGT
2

2、输出

CG

3、说明

ACGT长度为2的子串有AC,CG,GT3个,其中AC和GT2个的GC-Ratio都为0.5,CG为1,故输出CG 。

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/637046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot:SpringBoot启动加载过程 ④

一、思想 我们看到技术上高效简单的使用&#xff0c;其实背后除了奇思妙想的开创性设计&#xff0c;另一点是别人帮你做了复杂繁琐的事情。 二、从官网Demo入手 官网就一行代码。这个就是它的启动代码。 1、SpringBootApplication注解 ①. 三个核心注解的整合。 SpringBootCon…

什么是微带线和带状线

在电路板设计中&#xff0c;微带线和带状线分别是用于传输信号的两种常见的传输线路。虽然在许多方面它们很相似&#xff0c;但是它们的物理结构、传输速率、特性阻抗等方面存在很大的差异。 本文将介绍微带线和带状线的基本概念、特性和应用场景&#xff0c;并比较它们的优缺…

Snap版本的CUPS将在Ubuntu 23.10 中默认使用

导读CUPS 是一个用于 Linux 系统的开源模块化打印系统&#xff0c;最初由 Michael Sweet 开发。在 2007 年&#xff0c;苹果公司收购了 CUPS&#xff0c;并聘请了 Michael Sweet 继续开发。 CUPS 是一个用于 Linux 系统的开源模块化打印系统&#xff0c;最初由 Michael Sweet …

搭建一个免费代理IP池,妈妈再也不用担心我没有IP用了

背景 爬虫工作才刚刚开始&#xff0c;突然IP被限制了&#xff0c;怎么办&#xff1f;他们告诉我&#xff0c;可以去买代理IP呀。 可是我翻了5遍裤兜&#xff0c;查了8张银行卡&#xff0c;却只有1块钱 &#xff0c;根本买不起啊。 突然&#xff0c;隔壁部门的同事的姐姐的妈妈…

k8s pod state terminating学习笔记

文章目录 背景解决方式个人思考 背景 今天服务器重启失败&#xff0c;于是去检查k8s状态&#xff0c;发现pod一直处于terminating状态。 多次尝试删除pod但是失败了&#xff0c;于是想到可能是k8s node卡住了导致接收不到kill命令。 解决方式 所以reboot k8s node&#xff0…

华夏erp账号任意用户登录

hunter&#xff1a; web.icon"f6efcd53ba2b07d67ab993073c238a11" 访问/jshERP-boot/user/getAllList;.ico接口可查看所有用户账号密码(密码为md5值) GET /jshERP-boot/user/getAllList;.ico HTTP/1.1 Host: xxx User-Agent: Mozilla/5.0 (Windows NT 10.0; Win…

加密与解密 调试篇 动态调试技术 (四)-x64dbg/MDebug

x64dbg是开源的调试器 支持 32位和64位 Download x64dbg 我们使用64位程序进行实验 加载TraceMe64 然后我们通过之前了解到了 TraceMe是用 GetDlgItemTextA来读取我们输入的值 所以我们在x64dbg中对其进行断点 但是我们先要设置 x64dbg在加载程序的时候是在系统断点处所…

本原多项式和不可约多项式

本文讨论的&#xff0c;不做特别说明的话&#xff0c;都是在伽罗华域(Galois Fields)上。 1、不可约多项式&#xff08;Irreducible Polynomial&#xff09; 定义&#xff1a;不能写成两个次数较低的多项式乘积形式的多项式。 多项式分解网站&#xff1a;EE4253 Polynomial …

中尺度气象学期末复习笔记

中尺度气象学期末复习笔记 文章目录 中尺度气象学期末复习笔记三个表示天气的词之间的关系&#xff08;一&#xff09;天气系统的尺度划分1.1 为什么要进行尺度分析1.2 经验分类Ligda对中尺度的定义 1.3 理论分类谱分析通过无量纲数进行分类 1.4 实用分类奥兰斯基分类AEIOU分类…

如何恢复u盘数据?数据恢复,就看这4个方法!

案例&#xff1a;每次清理u盘时&#xff0c;总是会不小心删除重要的数据&#xff0c;如何恢复u盘数据呢&#xff1f; 【u盘中的数据删除了还能恢复吗&#xff1f;我昨天想把u盘里一些不需要的图片和文件删除&#xff0c;但不小心删了些有用的数据&#xff0c;有什么方法可以帮我…

【洛谷】P8306 【模板】字典树

&#xff08;最后有解释哦&#xff09; 0:所需参数 const int N3e610;int t[N][70],cnt[N],idx; char s[N]; 1.映射字符 int getnum(char x) {if(x>A&&x<Z) return x-A;else if(x>a&&x<z) return x-a26;else return x-052; } 2.插入字符串 voi…

pdf文档怎么转换成excel?分享这几个方法!

当涉及将PDF转换为Excel时&#xff0c;许多人可能会遇到困扰。PDF因其统一性、稳定性和不可编辑性而被广泛应用于日常工作和学习中。然而&#xff0c;在某些特殊情况下&#xff0c;例如在网络上找到的PDF资料中需要借鉴其中的内容制作Excel文档&#xff0c;我们需要找到方法将P…

谷歌Imagen Editor融入AI技术,助力图片创作

AI科技的应用越来越广泛&#xff0c;自然也被各个公司所重视&#xff0c;近日谷歌就推出利用AI技术的图片创作软件Imagen Editor&#xff0c;这款软件成熟以后&#xff0c;或将助力图片的创作。 近日有消息称&#xff0c;谷歌正在研发一款名为Imagen Editor生成式AI工具&…

设施管理系统

随着经济的快速发展&#xff0c;各种基础设施都在更新&#xff0c;在企事业单位中各种设施也都难以管理&#xff0c;以往传统的管理模式已经无法适应现代社会的需求&#xff0c;设备管理的滞后反而会影响设施设备的使用效果&#xff0c;因此设施设备管理系统必不可少。那么什么…

uniapp实现单选以及多选

<!-- 多选 --> <template><view class"choiceSupervisionLinkman"><view class"searchBox"><uni-search-bar :radius"8" placeholder"请输入成员名称" clearButton"none" confirm"search&q…

记录一些maven依赖冲突

目录 Mybatis-Plusswagger报错pagehelper分页失效 Mybatis-Plus <dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><dependency><groupId&…

自动化的艺术

对于基础设施来说&#xff0c;很多服务都有类似的架构、数据库交互和UI&#xff0c;本文介绍了Paypal通过模板自动化基础设施微服务脚手架代码的实践&#xff0c;最大化节约了开发服务的时间并保证了服务的一致性。原文&#xff1a;The Art of Automating Automation[1] 简介 作…

6.4 构建并评价回归模型

6.4 构建并评价回归模型 6.4.1 使用sklearn估计器构建线性回归模型6.4.2 评价回归模型小结 6.4.1 使用sklearn估计器构建线性回归模型 按照研究方法划分&#xff0c;回归分析研究的范围大致如图所示&#xff1a;   在回归模型中&#xff0c;自变量与因变量具有相关关系&…

python对象与类

文章目录 简述类与对象什么是类&#xff1f;什么是对象&#xff1f;类与对象的关系什么是面向对象编程? 创建类与对象创建创建对象引用类的成员类的属性类的行为self的作用 简述类与对象 什么是类&#xff1f; 类就是包含属性和行为的一种说法&#xff0c;在程序上的class即…

深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)【上篇】

【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍&#xff1a;【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化…