DNA Pairing

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

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

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

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

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

还是先把以前的解法拿出来:

function pair(str) {
  var result=[];
  var aStr=str.split('');
  for(var i=0;i<aStr.length;i++){
    if(aStr[i]!=='A'&&aStr[i]!=='C'&&aStr[i]!=='G'&&aStr[i]!=='T') return 'error';
    else if(aStr[i]=='G'){
      result.push([aStr[i]].concat(['C']));
    }
    else if(aStr[i]=='C'){
      result.push([aStr[i]].concat(['G']));
    }
    else if(aStr[i]=='T'){
      result.push([aStr[i]].concat(['A']));
    }
    else if(aStr[i]=='A'){
      result.push([aStr[i]].concat(['T']));
    }
  }
  return result;
}

 更简单的解法:

function pair(str) {
  var dna = {
    'A':'T',
    'T':'A',
    'C':'G',
    'G':'C',
  };
  var result = [];
  var temp;
  for(let i=0;i<str.length;i++){
    temp=[];
    temp.push(str[i]);
    temp.push(dna[str[i]]);
    result.push(temp);
  }
  return result;
}
原文地址:https://www.cnblogs.com/renbo/p/6701626.html