How to reverse the middle N characters of a string in Rust

1 Answer

0 votes
fn reverse_middle_n_characters(s: &str, n: usize) -> String {
    if n <= 0 || n > s.len() {
        return s.to_string();
    }

    let start = (s.len() - n) / 2;
    let end = start + n;

    let before_middle = &s[0..start];
    let middle: String = s[start..end].chars().rev().collect();
    let after_middle = &s[end..];

    format!("{}{}{}", before_middle, middle, after_middle)
}

fn main() {
    let s = "abCDEFgh";
    let n = 4;

    println!("{}", reverse_middle_n_characters(s, n));
}


  
/*
run:

abFEDCgh

*/

 



answered Sep 12, 2024 by avibootz
...