1.任务及要求
DNA Pairing
DNA 链缺少配对的碱基。依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回。
Base pairs(碱基对) 是一对 AT 和 CG,为给定的字母匹配缺失的碱基。
在每一个数组中将给定的字母作为第一个碱基返回。
例如,对于输入的 GCG,相应地返回 [["G", "C"], ["C","G"],["G", "C"]]
字母和与之配对的字母在一个数组内,然后所有数组再被组织起来封装进一个数组。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
测试数据:
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"]]
。
2.我的解法
// 思路整理:
// 1,分割存储字符串
// 2,获取数组长度
// 3,循环匹配,存储配对结果
// 4,每组配对push到结果数组;
function pair(str) { var base = str.split(""); var strLength = base.length; var paired = []; for(var i =0; i < strLength; i++) { var bePair=[]; if(base[i] == "A"){ bePair.push(base[i],"T"); } else if(base[i] == "T") { bePair.push(base[i],"A"); } else if(base[i] == "C") { bePair.push(base[i],"G"); } else if(base[i] == "G") { bePair.push(base[i],"C"); } else { return 'error'; } paired.push(bePair); } return paired; } pair("GCG");
3.发现的其他解法
// CSDN:https://blog.csdn.net/wangmc0827/article/details/78690429
// 简书:https://www.jianshu.com/p/0f0aa0c71a5a