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)
;; A string is simply an ordered collection of symbols selected from some
;; alphabet and formed into a word; the length of a string is the number of
;; symbols that it contains.
;;
;; An example of a length 21 DNA string (whose alphabet contains the symbols
;; 'A', 'C', 'G', and 'T') is "ATGCTTCAGAAAGGTCTTACG."
;;
;; Given: A DNA string s of length at most 1000 nt. Return: Four integers
;; (separated by spaces) counting the respective number of times that the
;; symbols 'A', 'C', 'G', and 'T' occur in s.
(define-problem dna (data)
"AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
"20 12 17 21"
(let ((results (frequencies data)))
(format nil "~D ~D ~D ~D"
(gethash #\A results)
(gethash #\C results)
(gethash #\G results)
(gethash #\T results))))