Код Middle Ожидания и флаки обновлено
Симуляция поллинга с таймаутом
Условие
Напишите poll(observations, timeout, interval), моделирующую ожидание условия.
Попытка номер i (с нуля) происходит в момент i * interval и выполняется, только пока это время не больше timeout. Значение условия на попытке i это observations[i], а если список короче, последнее значение списка (список не пуст).
Вернуть словарь {"ok": bool, "attempts": число попыток, "elapsed": время последней попытки}. При первом истинном значении ожидание заканчивается успехом.
Примеры
poll([false, false, true], 10, 2) // {"ok":true,"attempts":3,"elapsed":4}
poll([true], 10, 2) // {"ok":true,"attempts":1,"elapsed":0}
poll([false], 10, 2) // {"ok":false,"attempts":6,"elapsed":10}
Как подойти
Подсказки: 2
- Первая попытка в момент 0.
- Граница включительная:
<=.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.