object ReverseMiddleNCharacters {
def reverseMiddleNCharacters(str: String, N: Int): String = {
if (N <= 0 || N > str.length) {
return str
}
val start = (str.length - N) / 2
val end = start + N
val beforeMiddle = str.substring(0, start)
val middle = str.substring(start, end).reverse
val afterMiddle = str.substring(end)
beforeMiddle + middle + afterMiddle
}
def main(args: Array[String]): Unit = {
val s = "abCDEFgh"
val N = 4
println(reverseMiddleNCharacters(s, N))
}
}
/*
run:
scala c# c python ++ java rust
*/