Back to Freecodecamp

Challenge 76: Complementary DNA

curriculum/challenges/english/blocks/daily-coding-challenges-python/68d30845cc08266018fc46bc.md

latest1.5 KB
Original Source

--description--

Given a string representing a DNA sequence, return its complementary strand using the following rules:

  • DNA consists of the letters "A", "C", "G", and "T".
  • The letters "A" and "T" complement each other.
  • The letters "C" and "G" complement each other.

For example, given "ACGT", return "TGCA".

--hints--

complementary_dna("ACGT") should return "TGCA".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(complementary_dna("ACGT"), "TGCA")`)
}})

complementary_dna("ATGCGTACGTTAGC") should return "TACGCATGCAATCG".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(complementary_dna("ATGCGTACGTTAGC"), "TACGCATGCAATCG")`)
}})

complementary_dna("GGCTTACGATCGAAG") should return "CCGAATGCTAGCTTC".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(complementary_dna("GGCTTACGATCGAAG"), "CCGAATGCTAGCTTC")`)
}})

complementary_dna("GATCTAGCTAGGCTAGCTAG") should return "CTAGATCGATCCGATCGATC".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(complementary_dna("GATCTAGCTAGGCTAGCTAG"), "CTAGATCGATCCGATCGATC")`)
}})

--seed--

--seed-contents--

py
def complementary_dna(strand):

    return strand

--solutions--

py
def complementary_dna(strand):
    complements = { "A": "T", "T": "A", "C": "G", "G": "C" }
    return "".join(complements[n] for n in strand)