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

news/2024/11/30 9:56:24/

在这里插入图片描述

一、题目描述

一个 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.ppmy.cn/news/343173.html

相关文章

MySQL-explain-type列

type列&#xff1a; 表示关联类型或者访问类型&#xff0c;即MySQL决定如何查找表中的行&#xff0c;查找数据行记录的大概范围 一次最优到最差依次为&#xff1a; system>const>eq_ref>ref>range>index>ALL 一般得达到range级别&#xff0c;最好达到ref Ty…

6.4 构建并评价回归模型

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

postman中级:导入文件数据,批量化参数

建议阅读对象&#xff1a;已掌握postman的基本使用&#xff08;参见&#xff1a;postman入门-主界面认识&#xff0c;模拟请求&#xff09; 本地安装的版本&#xff1a;Postman for Windows Version 10.14.9 1.创建csv文件 或 txt文件 文件数据格式&#xff1a; 第一行写下参…

002、体系结构之TiDB Server

TiDB Server 1、TiDB总览1.1、TiDB Server架构1.2、TiDB Server 主要功能&#xff1a; 2、SQL语句处理语句的解析和编译SQL层协议层上下文解析层逻辑优化器物理优化器本地执行器分布式执行器 3、如何将表的数据转成kv形式4、在线DDL相关模块5、GC机制与相关模块6、TiDB Server …

办公操作2:局域网连不上打印机(hp701m)的操作

办公室新的电脑&#xff08;win7系统&#xff09;和打印机hp701m连接不上。 一般有两种连接打印机的方法&#xff1a; 1&#xff0c;添加打印机—搜索局域网共享的打印机&#xff0c;搜到后安装就可以使用。 2&#xff0c;在资源管理器里面输入“\192.168.1.103”&#xff08;打…

Java网络编程学习

网络编程 1.1网路通信的要素 如何实现网络通信&#xff1f; ​ 通信双方地址&#xff1a; IP地址端口号 规则&#xff1a;网络通信的协议 ​ TCP、IP参考模型 ​ OSI七层参考模型 网络编程主要地方 小结&#xff1a; 网络编程中主要存在的问题&#xff1a; 如何准确定…

Java:网络编程

文章目录 一、计算机网络1.1 概述1.2 网络编程的目的1.3 需要的条件 二、网络通信两要素2.1 IP地址2.2 端口Port 三、通信协议3.1 OSI七层网络模型和TCP/IP四层概念3.2 三次握手3.3 四次挥手 四、TCP4.1 类4.2 聊天4.3 TCP文件上传 五、UDP5.1 类5.2 多线程聊天 六、URL6.1 常用…

网络编程全解(Java)

网络编程 1.1 概述 计算机网络&#xff1a; 计算网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递计算…