JS中级算法,DNA配对
作者:互联网
DNA 配对
给出的 DNA 链上缺少配对元素。 请基于每个字符,获取与其配对的元素,并将结果作为二维数组返回。
DNA 的碱基对 有两种形式:一种是 A 与 T,一种是 C 与 G。 请为参数中给出的每个字符配对相应的碱基。
注意,参数中给出的字符应作为每个子数组中的第一个元素返回。
例如,传入 GCG
时,应返回 [["G", "C"], ["C","G"], ["G", "C"]]
。
一、switch 语句
function pairElement(str) {
// Return each strand as an array of two elements, the original and the pair.
var paired = [];
// Function to check with strand to pair.
var search = function(char) {
switch (char) {
case "A":
paired.push(["A", "T"]);
break;
case "T":
paired.push(["T", "A"]);
break;
case "C":
paired.push(["C", "G"]);
break;
case "G":
paired.push(["G", "C"]);
break;
}
};
// Loops through the input and pair.
for (var i = 0; i < str.length; i++) {
search(str[i]);
}
return paired;
}
// test here
pairElement("GCG");
二、对象键值对
function pairElement(str) {
// create object for pair lookup
const pairs = {
A: "T",
T: "A",
C: "G",
G: "C"
}
// split string into array of characters
const arr = str.split("")
// map character to array of character and matching pair
return arr.map(x => [x, pairs[x]])
}
// test here
pairElement("GCG")
相关链接:
Array.prototype.map()
属性访问器
箭头函数
标签:DNA,JS,break,paired,str,pair,pairElement,配对 来源: https://blog.csdn.net/weixin_45397318/article/details/122769676