Решение
fun addStrings(num1: String, num2: String): String {
val result = StringBuilder()
var carry = 0 // Перенос для сложения
var i = num1.length - 1
var j = num2.length - 1
// Проходим по цифрам с конца обеих строк
while (i >= 0 || j >= 0 || carry != 0) {
val x = if (i >= 0) num1[i] - '0' else 0 // Получаем цифру из num1 или 0, если индекс отрицательный
val y = if (j >= 0) num2[j] - '0' else 0 // Получаем цифру из num2 или 0, если индекс отрицательный
val sum = x + y + carry // Сумма цифр и переноса
result.append(sum % 10) // Добавляем младший разряд в результат
carry = sum / 10 // Обновляем перенос
i--
j--
}
return result.reverse().toString() // Переворачиваем строку для получения корректного результата
}