DNA序列(牛客网算法/javascript Node环境)

描述

一个 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比例最高的子串,如果有多个则输出第一个的子串

javascript 复制代码
//示例1
//输入
ACGT
2
//输出
CG
//说明
ACGT长度为2的子串有AC,CG,GT3个,其中AC和GT2个的GC-Ratio都为0.5,CG为1,故输出CG   

//示例2
//输入
AACTGTGCACGACCTGA
5
//输出
GCACG
//说明
虽然CGACC的GC-Ratio也是最高,但它是从左往右找到的GC-Ratio最高的第2个子串,所以只能输出GCACG。
javascript 复制代码
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

let lines = [];
rl.on('line',function(line){
    lines.push(line);
    if(lines.length === 2){
        let strArr = lines[0].split('');
        let len = parseInt(lines[1]);
        let result = [0, '']
        for(let i=0;i<strArr.length - len + 1;i++){

            let res = strArr.slice(i, i + len);
            
            if(getGC(res)>result[0]){
                result = [getGC(res), res]
            }
        }
        console.log(result[1].join(''))
    }
    
})
function getGC(str){
    let GCcount = 0;
    for(let i=0; i<str.length;i++ ){
        if(str[i] === 'C' || str[i] === 'G'){
            GCcount++
        }
    }
    if(GCcount === 0){
        return 0
    }else{
        return GCcount/str.length
    }
}
相关推荐
星释6 分钟前
Rust 练习册 4:Deref trait 与智能指针
开发语言·后端·rust
AAA简单玩转程序设计7 分钟前
救命!HTML按钮点了没反应?3分钟学会给网页“装脑子”
javascript·html
心随雨下10 分钟前
Java中将System.out内容写入Tomcat日志
java·开发语言·tomcat
神秘的猪头10 分钟前
浏览器是如何渲染 HTML/CSS/JS 页面的?——从代码到像素的完整流程
前端·javascript
墨染点香10 分钟前
LeetCode 刷题【142. 环形链表 II】
算法·leetcode·链表
海琴烟Sunshine14 分钟前
leetcode 263. 丑数 python
python·算法·leetcode
啷咯哩咯啷15 分钟前
el-table-v2 实现自适应列宽
前端·javascript·vue.js
3秒一个大15 分钟前
JavaScript 中 var、let 和 const 的区别与应用
javascript
inx17722 分钟前
微信小程序开发实战:从结构到数据绑定的完整实现
javascript·微信小程序
信仰_27399324323 分钟前
Guava Cache淘汰算法
算法·guava