zoukankan      html  css  js  c++  java
  • DNA Pairing

    DNA 链缺少配对的碱基。依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回。

    Base pairs(碱基对) 是一对 AT 和 CG,为给定的字母匹配缺失的碱基。

    在每一个数组中将给定的字母作为第一个碱基返回。

    例如,对于输入的 GCG,相应地返回 [["G", "C"], ["C","G"],["G", "C"]]

    字母和与之配对的字母在一个数组内,然后所有数组再被组织起来封装进一个数组。

    还是先把以前的解法拿出来:

    function pair(str) {
      var result=[];
      var aStr=str.split('');
      for(var i=0;i<aStr.length;i++){
        if(aStr[i]!=='A'&&aStr[i]!=='C'&&aStr[i]!=='G'&&aStr[i]!=='T') return 'error';
        else if(aStr[i]=='G'){
          result.push([aStr[i]].concat(['C']));
        }
        else if(aStr[i]=='C'){
          result.push([aStr[i]].concat(['G']));
        }
        else if(aStr[i]=='T'){
          result.push([aStr[i]].concat(['A']));
        }
        else if(aStr[i]=='A'){
          result.push([aStr[i]].concat(['T']));
        }
      }
      return result;
    }

     更简单的解法:

    function pair(str) {
      var dna = {
        'A':'T',
        'T':'A',
        'C':'G',
        'G':'C',
      };
      var result = [];
      var temp;
      for(let i=0;i<str.length;i++){
        temp=[];
        temp.push(str[i]);
        temp.push(dna[str[i]]);
        result.push(temp);
      }
      return result;
    }
  • 相关阅读:
    1253:抓住那头牛
    1251:仙岛求药
    1330:【例8.3】最少步数
    1329:【例8.2】细胞
    1216:红与黑
    1217:棋盘问题
    回溯法与深度优先搜索的关系
    自然数的拆分
    100——第35例
    100——第34例
  • 原文地址:https://www.cnblogs.com/renbo/p/6701626.html
Copyright © 2011-2022 走看看