Не уверен, что понял ваши требования, но вот мои предположения:
- вы можете объединить два массива, если последний элемент первого массива совпадает с первым элементом второго массив или последний элемент второго массива - в последнем случае вам также необходимо обратить вспять второй массив;
- при объединении двух массивов первый элемент второго массива должен быть пропущен (после обращения массива к другому , если необходимо в соответствии с предыдущим пунктом)
- если два массива не могут быть объединены, возвращается пустой массив
В соответствии с этими предположениями, возможная реализация:
fun combineArrays(a: IntArray, b: IntArray): IntArray =
when {
a.last() == b.first() -> a + b.takeLast(b.size - 1)
a.last() == b.last() -> a + b.reversed().takeLast(b.size - 1)
else -> intArrayOf()
}
val a = intArrayOf(1, 2, 3, 4, 5)
val b = intArrayOf(9, 8, 7, 6, 5)
val c = intArrayOf(3, 0, 9)
val result = combineArrays(combineArrays(a, b), c)
println(result.joinToString())
Это печатает 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 3
.