fn reverse_middle_words(input: &str) -> String {
let words: Vec<&str> = input.split_whitespace().collect();
let len = words.len();
// If there are 2 or fewer words, there are no "middle" words to reverse
if len <= 2 {
return input.to_string();
}
let mut result = Vec::new();
for (i, word) in words.iter().enumerate() {
if i == 0 || i == len - 1 {
// Keep the first and last words as they are
result.push(word.to_string());
} else {
// Reverse the characters of the middle words
let reversed_word: String = word.chars().rev().collect();
result.push(reversed_word);
}
}
result.join(" ")
}
fn main() {
let input = "Hello how are you today";
let modified = reverse_middle_words(input);
println!("{}", modified);
}
/*
run:
Hello woh era uoy today
*/