summaryrefslogtreecommitdiff
path: root/reverse-string-ii/src/main.rs
blob: 883f24f53436787dcb5e517e1a6899e775e07619 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fn main() {
    println!("Hello, world!");
    let tests = [
        ("abcdefg", 2, "bacdfeg"),
        ("abcd", 2, "bacd")
    ];

    for test in tests {
        println!("{:?} {} is {:?} should be {:?}", test.0, test.1,
                 Solution::reverse_str(test.0.to_string(), test.1), test.2);
    }
}

struct Solution;

impl Solution {
    pub fn reverse_str(mut s: String, k: i32) -> String {
        unsafe { s.as_bytes_mut() }.chunks_mut(k as usize).step_by(2).for_each(|x| x.reverse());
        s
    }
}