Вычисление суммы цифр, содержащихся в строке

Пройдите символы и прибавляйте разность c − '0'. Для контракта с ASCII-цифрами это даёт числовое значение каждого символа без разбора всей строки в число.

Короткий ответ

Что ответить на собеседовании

Пройдите символы и прибавляйте разность c − '0'. Для контракта с ASCII-цифрами это даёт числовое значение каждого символа без разбора всей строки в число.

Подробный разбор

Ответ с пояснениями

Условие

Метод получает строку, в которой находятся только цифры, и должен вернуть сумму всех этих цифр.

Вход: "123" Выход: 6

class Solution {
    public static Integer calculateSum(String numericString) {
        return null;
    }
}

Ответ

Пройдите символы и прибавляйте разность c − '0'. Для контракта с ASCII-цифрами это даёт числовое значение каждого символа без разбора всей строки в число.

public static Integer calculateSum(String numericString) {
    java.util.Objects.requireNonNull(numericString);
    int sum = 0;
    for (int i = 0; i < numericString.length(); i++) {
        char c = numericString.charAt(i);
        if (c < '0' || c > '9') throw new IllegalArgumentException("Not a digit");
        sum = Math.addExact(sum, c - '0');
    }
    return sum;
}

Время O(n), память O(1). Пустая строка даёт 0; если она недопустима, добавьте валидацию. Math.addExact защищает от переполнения для очень длинного входа. Знаки и десятичные разделители по условию не поддерживаются.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее