fun reverseMiddleWords(s: String): String {
val words = s.trim().split(Regex("\\s+"))
if (words.size < 3) return s // nothing to reverse
val first = words.first()
val last = words.last()
val middle = words.subList(1, words.size - 1).map { it.reversed() }
return listOf(first, *middle.toTypedArray(), last).joinToString(" ")
}
fun main() {
val input = "Hello how are you today"
println(reverseMiddleWords(input))
}
/*
run:
Hello woh era uoy today
*/