字符配对算法挑战
问题:
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"]]
。
问题答案:
var arr = new Array();
str = str.split("");
for (var index = 0; index < str.length; index++)
{ arr[index] = new Array(); arr[index].push(str[index]);
if (str[index] == "G" || str[index] == "C")
{ (arr[index] == "G") ? arr[index].push( "C"): arr[index].push("G"); }
else { (arr[index] == "A") ? arr[index].push("T"):
arr[index].push("A"); } }
return arr;