Решение
fun calPoints(operations: Array<String>): Int {
val stack = mutableListOf<Int>() // Создаём стек для хранения очков
for (op in operations) {
when (op) {
"+" -> {
// Добавляем сумму двух последних очков
val last = stack[stack.size - 1]
val secondLast = stack[stack.size - 2]
stack.add(last + secondLast)
}
"D" -> {
// Удваиваем последнее очко
val last = stack.last()
stack.add(2 * last)
}
"C" -> {
// Удаляем последнее очко
stack.removeAt(stack.size - 1)
}
else -> {
// Добавляем число в стек
stack.add(op.toInt())
}
}
}
return stack.sum() // Возвращаем сумму всех очков
}