src/problems/revc.lisp @ 4cad0eb1a700
Restructure, do GC
author |
Steve Losh <steve@stevelosh.com> |
date |
Thu, 01 Nov 2018 21:10:34 -0400 |
parents |
(none) |
children |
6088027147e1 |
(in-package :rosalind)
;; In DNA strings, symbols 'A' and 'T' are complements of each other, as are 'C'
;; and 'G'.
;;
;; The reverse complement of a DNA string s is the string sc formed by reversing
;; the symbols of s, then taking the complement of each symbol (e.g., the
;; reverse complement of "GTCA" is "TGAC").
;;
;; Given: A DNA string s of length at most 1000 bp.
;;
;; Return: The reverse complement sc of s.
(define-problem revc (data)
"AAAACCCGGT"
"ACCGGGTTTT"
(copyf data)
(flet ((dna-complement (base)
(case base
(#\A #\T)
(#\T #\A)
(#\G #\C)
(#\C #\G)
(t base)))) ; newline etc
(map-into data #'dna-complement data)
(nreverse data)))