Files
freecodecamp--freecodecamp/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/68d30845cc08266018fc46bc.md
T
wehub-resource-sync dde272c4b8
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:55:53 +08:00

1.3 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
68d30845cc08266018fc46bc Challenge 76: Complementary DNA 28 challenge-76

--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--

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

assert.equal(complementaryDNA("ACGT"), "TGCA");

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

assert.equal(complementaryDNA("ATGCGTACGTTAGC"), "TACGCATGCAATCG");

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

assert.equal(complementaryDNA("GGCTTACGATCGAAG"), "CCGAATGCTAGCTTC");

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

assert.equal(complementaryDNA("GATCTAGCTAGGCTAGCTAG"), "CTAGATCGATCCGATCGATC");

--seed--

--seed-contents--

function complementaryDNA(strand) {

  return strand;
}

--solutions--

function complementaryDNA(strand) {
  const complements = { A: "T", T: "A", C: "G", G: "C" };
  return strand
    .split("")
    .map(c => complements[c])
    .join("");
}