要求
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");