https://leetcode.com/problems/add-strings Easy

Решение

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()  // Переворачиваем строку для получения корректного результата
}