Javascript

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()
属性访问器
箭头函数

这篇关于JS中级算法,DNA配对的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!