알고리즘 77 - Complementary DNA

tamagoyakii·2021년 11월 4일
0

알고리즘

목록 보기
77/89

Q.

Deoxyribonucleic acid (DNA) is a chemical found in the nucleus of cells and carries the "instructions" for the development and functioning of living organisms.

If you want to know more: http://en.wikipedia.org/wiki/DNA

In DNA strings, symbols "A" and "T" are complements of each other, as "C" and "G". You have function with one side of the DNA (string, except for Haskell); you need to get the other complementary side. DNA strand is never empty or there is no DNA at all (again, except for Haskell).

More similar exercise are found here: http://rosalind.info/problems/list-view/ (source)

Example: (input --> output)

"ATTGC" --> "TAACG"
"GTAT" --> "CATA"
dnaStrand [] shouldBe []
dnaStrand [A,T,G,C] shouldBe [T,A,C,G]
dnaStrand [G,T,A,T] shouldBe [C,A,T,A]
dnaStrand [A,A,A,A] shouldBe [T,T,T,T]

A)

function DNAStrand(dna){
  return dna.split('').map(el => {
    switch(el) {
      case 'A' : return 'T'
      case 'T' : return 'A'
      case 'G' : return 'C'
      case 'C' : return 'G'
    }
  }).join('')
}

0개의 댓글