blob: 3c9e9e796e4577f75577e0bfd557b67f3af5e8b2 (
plain) (
tree)
|
|
use io::{stdin,println,ReaderUtil};
/* really feels like there should be a more efficient way to do this */
fn reverse(s: &str) -> ~str {
let mut r = ~"";
str::reserve(&mut r, str::len(s));
for str::each_char(s) |ch| {
str::unshift_char(&mut r, ch)
}
r
}
fn complement(ch: char) -> char {
match ch {
'A' => 'T',
'C' => 'G',
'G' => 'C',
'T' => 'A',
_ => fail ~"Unknown character found",
}
}
fn main() {
let dna = stdin().read_line();
println(str::map(reverse(dna), complement));
}
|