C#:
using System;using System.Linq;public class DnaStrand { public static string MakeComplement(string dna) { return string.Concat(dna.Select(GetComplement)); } public static char GetComplement(char symbol) { switch (symbol) { case 'A': return 'T'; case 'T': return 'A'; case 'C': return 'G'; case 'G': return 'C'; default: throw new ArgumentException(); } } }
Java:
public class DnaStrand { public static String makeComplement(String dna) { char[] chars = dna.toCharArray(); for(int i = 0; i < chars.length; i++) { chars[i] = getComplement(chars[i]); } return new String(chars); } private static char getComplement(char c) { switch(c) { case 'A': return 'T'; case 'T': return 'A'; case 'C': return 'G'; case 'G': return 'C'; } return c; } }
JS:
function DNAStrand(dna) { return dna.replace(/./g, function(c) { return DNAStrand.pairs[c] }) } DNAStrand.pairs = { A: 'T', T: 'A', C: 'G', G: 'C', }