summaryrefslogtreecommitdiffstats
path: root/rosalind/str.rs
blob: c96024a9675ec4387a6486ebef869c1c52ead13d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use str = core::str;

/* really feels like there should be a more efficient way to do this */
fn reverse(s: &str) -> ~str {
    let mut r = str::with_capacity(str::len(s));
    for str::each_char(s) |ch| {
        str::unshift_char(&mut r, ch)
    }
    r
}

pure fn hamming(string1: &str, string2: &str) -> int {
    let mut hamming = 0;
    for str::each_chari(string1) |i, ch| {
        if ch != str::char_at(string2, i) {
            hamming += 1;
        }
    }
    hamming
}