Comments 15
спасибо, очень познавательно и интересно
Для всех этих задач есть один чит - reduce позволяет получить абсолютно любой результат.
Такие загадки проще придумывать, чем разгадывать. Идешь по списку функций, что там у нас? Пусть будет
mapIndexed { index, value → index + value}
Что там в итоге? 29 – замечательно, в жизни бы бы не подумал, беру!
Справедливости ради, стандартная библиотека kotlin классная, и такие посты – отличная профилактика от велосипедостроения.
�
Тут тоже задача-шутка. Сразу понятно, что среднее из текущего листа никак не получить.
А если так:
fun main() {
listOf(1, 3, 3, 2, 4, 1)
.runningReduce { acc, e -> acc + e }
.average()
.let { println(it) }//=8.0
}
playground
Идея хорошая, но сами задачки странные.
14 задача проще решается через .map { 1 }
Задачи неоднозначные. Например, будет ли засчитано моё решение задачи №2?
listOf(1, 3, 3, 2, 4, 1)
.let { kotlin.collections.List(it.count()-1){1} }
.sum()
.let { println(it) }//=5
Последнюю задачку можно взять похитрее)
map { it/it }
�
В сложных задачах – ничего сложного ))
listOf(1, 3, 3, 2, 4, 1)
.mapIndexed{index, value -> ((value + 6) % 4) * ((index + 7) % 5) + 1}
.sum()
.let { println(it) } //27
блин, я большую часть решал в лоб, как-то так, например для 14
listOf(1, 3, 3, 2, 4, 1)
.filter { it == 3 }
.sum()
.let { println(it) }//=6
наверное, автор ожидает более элегантных решений ¯\_(ツ)_/¯
14 задач по Kotlin lists, которые заставят вас подумать