-
Notifications
You must be signed in to change notification settings - Fork 0
/
complementaryDNA.js
56 lines (46 loc) · 1.32 KB
/
complementaryDNA.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Codewars - Andreas Sosilo
// 7 kyu - Complementary DNA
/*
Task:
-----
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)
DNAStrand ("ATTGC") // return "TAACG"
DNAStrand ("GTAT") // return "CATA"
*/
function DNAStrand (dna) {
// your code here
let result = ''
for (let i = 0; i < dna.length; i++) {
if (dna[i] === 'A') {
result += 'T'
} else if (dna[i] === 'T') {
result += 'A'
} if (dna[i] === 'C') {
result += 'G'
} if (dna[i] === 'G') {
result += 'C'
}
}
return result
}
// BEST SOLUTION
// function DNAStrand (dna) {
// return dna.replace(/./g, function (c) {
// return DNAStrand.pairs[c]
// })
// }
// DNAStrand.pairs = {
// A: 'T',
// T: 'A',
// C: 'G',
// G: 'C'
// }
// TEST CASES
console.log(DNAStrand('ATTGC')) // 'TAACG'