JavaScript基础算法——DNA Pairing 基因配对多种解法

152 篇文章 2 订阅
25 篇文章 0 订阅

要求

DNA 链缺少配对的碱基。依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回。

Base pairs(碱基对) 是一对 AT 和 CG,为给定的字母匹配缺失的碱基。

在每一个数组中将给定的字母作为第一个碱基返回。

例如,对于输入的 GCG,相应地返回 [["G", "C"], ["C","G"],["G", "C"]]

字母和与之配对的字母在一个数组内,然后所有数组再被组织起来封装进一个数组。

参考

样本

pair("ATCGA") 应该返回 [["A","T"],["T","A"],["C","G"],["G","C"],["A","T"]]

pair("TTGAG") 应该返回 [["T","A"],["T","A"],["G","C"],["A","T"],["G","C"]]

pair("CTCTA") 应该返回 [["C","G"],["T","A"],["C","G"],["T","A"],["A","T"]]

暴力解法

function pair(str) {
  var arr = str.split('');
  var rArr = [];
  for(var i=0;i<arr.length;i++){
    switch(arr[i]){
      case 'A':
        rArr.push(['A','T']);
        break;
      case 'T':
        rArr.push(['T','A']);
        break;
      case 'G':
        rArr.push(['G','C']);
        break;
      case 'C':
        rArr.push(['C','G']);
        break;
    }
  }
  return rArr;
}

pair("GCG");

对象属性解法

function pair(str) {
  var o = {'A':'T','T':'A','G':'C','C':'G'};
  var rArr = [];
  for(var i=0;i<str.length;i++){
    rArr.push([str[i],o[str[i]]]);
  }
  return rArr;
}

pair("GCG");

MAP函数解法

function pair(str) {
  var o = {'A':'T','T':'A','G':'C','C':'G'};
  return str.split('').map(function(s){
    return [s,o[s]];
  });
}

pair("GCG");

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值