Java · 26 строк
Анкеты принимают 32 потока, в день рекламной акции — до 900 заявок в минуту. Номер показывают клиенту в SMS, по нему же скоринг находит клиента через clientOf.
Отметьте строки с ошибками.
В работе: Сервис приёма заявок на кредитную карту.
Как проверяем
Нажмите на строку с ошибкой и коротко напишите, что не так. Баг засчитан, если отмечена хотя бы одна его строка. Зачёт — найдено не меньше 60 % багов с учётом серьёзности (критичный весит 3, обычный 2, мелкий 1), а лишних отметок не больше, чем багов в коде. Пустые строки, скобки и комментарии лишними не считаем. Плюс 1 вопрос про поведение программы — на зачёт не влияют. Ответ один на подход: после него показываем разбор.
Источник: наша задача на данных Альфа-Банка: заявки на кредитную карту. Условие пересказано своими словами.
Давали на собеседовании?
import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;public class ApplicationNumbers {private static final SimpleDateFormat DAY = new SimpleDateFormat("yyMMdd");private volatile int seq = 0;private final Map<String, Long> byNumber = new HashMap<>();// Номер заявки: КК-251021-000123. Вызывают 32 потока приёма анкет.public String next(long clientId) {String day = DAY.format(new Date());seq++;String number = String.format("КК-%s-%06d", day, seq);byNumber.put(number, clientId);return number;}// Скоринг ищет клиента по номеру из SMS.public Long clientOf(String number) {return byNumber.get(number);}}