Реализуйте класс IdsProvider
, который умеет генеририровать уникальные числа-идентификаторы (id).
При первом вызове метод generateId
возвращает 0. Каждый следующий вызов этого метода должен возвращать новое натуральное (целое неотрицательное число). При этом должно возвращаться не любое число, а как можно меньшее.
С помощью метода revokeId
мы можем отозвать какой-то айдишник. Тогда при последующих вызовах метод generateId
сможет снова вернуть отозванные айдишники.
Метод revokeId
ничего не возвращает. Если в него передатьнесуществующий айдишник, он тоже ничего специального делать не должен, т.к. удалять нечего.
const idsProvider = new IdsProvider(); console.log(idsProvider.generateId()); // 0 console.log(idsProvider.generateId()); // 1 console.log(idsProvider.generateId()); // 2 console.log(idsProvider.generateId()); // 3 console.log(idsProvider.generateId()); // 4 console.log(idsProvider.generateId()); // 5 idsProvider.revokeId(3); idsProvider.revokeId(1); console.log(idsProvider.generateId()); // 1 console.log(idsProvider.generateId()); // 3 console.log(idsProvider.generateId()); // 6 idsProvider.revokeId(0); console.log(idsProvider.generateId()); // 0 console.log(idsProvider.generateId()); // 7