编程语言
首页 > 编程语言> > JS中级算法,DNA配对

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