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;
}
时间: 2025-01-11 15:58:54

DNA Pairing的相关文章

DNA Pairing-freecodecamp算法题目

DNA Pairing 1.要求 DNA 链缺少配对的碱基.依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回. Base pairs(碱基对)是一对 AT 和 CG,为给定的字母匹配缺失的碱基. 字母和与之配对的字母在一个数组内,然后所有数组再被组织起来封装进一个数组. 2.思路 用.split('')将输入的字母串分割成字母数组 定义结果数组变量,在for循环中遍历每个给定的字母,push到结果数组的二维元素中,利用switch语句,判断各个字母配对的碱基,push到相应数组

Convert HTML Entities

将字符串中的字符 &.<.>." (双引号), 以及 ' (单引号)转换为它们对应的 HTML 实体. 如果你被卡住了,记得开大招 Read-Search-Ask.尝试与他人结伴编程.编写你自己的代码. 这是一些对你有帮助的资源: RegExp HTML Entities function convert(str) { // &colon;&rpar; var o = { "&":"&", "&

FCC 中级算法题 碱基配对

DNA Pairing DNA 链缺少配对的碱基.依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回. Base pairs(碱基对) 是一对 AT 和 CG,为给定的字母匹配缺失的碱基. 在每一个数组中将给定的字母作为第一个碱基返回. 例如,对于输入的 GCG,相应地返回 [["G", "C"], ["C","G"],["G", "C"]] 字母和与之配对的字母在一个数组

FreeCodeCamp( FCC)前端工程师 中级算法练习 分析与解答(全)(精)

[TOC] 说在前面 这是要一篇非常简单的新手能看懂的文章,希望你喜欢.由于在 freecodecamp 中貌似!?无法使用 ES6 的某些语法,未测试具体.所以基本上用古老?!的ES5,4写成,谢谢.在写本博文前没有参考过别人的做法,纯手打,我的方法肯定不是最好,只是以我自己喜欢的方式在写而已. 纯原创,转载请联系作者https//:[email protected].[email protected]. freecodecamp China 不明白API请参考MDN给出的解释 个别题目没有判

SCU 4493 DNA

Time Limit: 1000 MS    Memory Limit: 131072 K Description Deoxyribonucleic acid (DNA) is a molecule that carries most of the genetic instructions used in the development, functioning and reproduction of all known living organisms and many viruses. Mo

UVA - 1368 DNA Consensus String

DNA Consensus String Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description  Figure 1. DNA (Deoxyribonucleic Acid) is the molecule which contains the genetic instructions. It consists of four different nuc

[LeetCode]Repeated DNA Sequences

题目:Repeated DNA Sequences 给定包含A.C.G.T四个字符的字符串找出其中十个字符的重复子串. 思路: 首先,string中只有ACGT四个字符,因此可以将string看成是1,3,7,20这三个数字的组合串: 并且可以发现{ACGT}%5={1,3,2,0};于是可以用两个位就能表示上面的四个字符: 同时,一个子序列有10个字符,一共需要20bit,即int型数据类型就能表示一个子序列: 这样可以使用计数排序的思想来统计重复子序列: 这个思路时间复杂度只有O(n),但是

POJ2778 DNA Sequence Trie+矩阵乘法

题意:给定N个有A C G T组成的字符串,求长度为L的仅由A C G T组成的字符串中有多少个是不含给定的N个字符串的题解: 首先我们把所有的模式串(给定的DNA序列)建Trie,假定我们有一个匹配串,并且在匹配过程到S[i]这个字符时匹配到了Trie上的某个节点t,那么有两种可能: 匹配失败:t->child[S[i]]为空,跳转到t->fail,因此t->fail一定不能是某个模式串的结尾: 匹配成功:跳转到t->child[S[i+1]],因此t->child[S[i

CodeForces 520C DNA Alignment

题意: 一段DNA序列(10^5长度)  定义h函数为两序列相同碱基个数  p函数为分别移动两个DNA序列后所有可能的h函数之和  问使p最大的序列有多少个 思路: 根据p函数的定义  我们发现p这个函数其实就是A序列每个碱基和B序列每个碱基比较再乘一个n 因此可以贪心构造B序列  即每次新加一个碱基必定是A序列中出现次数最多的碱基 那么最后的答案就是A序列中出现次数最多的碱基种类数的n次方 代码: #include<cstdio> #include<iostream> #incl