Ctrl K

Уникальные имена папок

Средняя
Папки создаются по очереди, requests[i] — имя, которое просят для i-й папки. Два одинаковых имени в системе быть не может. Если запрошенное имя ещё свободно, папка получает его. Если занято, система дописывает к нему суффикс (k) с наименьшим целым k ≥ 1, при котором имя становится свободным. Например, если заняты photo и photo(1), новая photo станет photo(2). Верните список имён, которые получат папки, в порядке создания.
Пример 1
requests=["notes", "draft", "notes", "notes(1)"] → ['notes', 'draft', 'notes(1)', 'notes(1)(1)']

Третья папка "notes" уже занята, получает "notes(1)". Четвёртая просит "notes(1)" — а оно занято, поэтому становится "notes(1)(1)".

Пример 2
requests=["img", "img(2)", "img", "img"] → ['img', 'img(2)', 'img(1)', 'img(3)']

Второй запрос "img" получает "img(1)", третий пропускает занятое "img(2)" и получает "img(3)".

Ограничения
  • 1 ≤ len(requests) ≤ 5 · 10⁴
  • 1 ≤ len(requests[i]) ≤ 20
  • Имена состоят из строчных латинских букв, цифр и круглых скобок
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазложить анаграммы по группам СредняяРазбиение на слова из словаря СредняяСлова, равные со сдвигом СредняяПодпоследовательность только одного слова СредняяФайлы с одинаковым содержимым Средняя
загружаем Python…
Вход
requests=["notes", "draft", "notes", "notes(1)"]
Ожидается
['notes', 'draft', 'notes(1)', 'notes(1)(1)']

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 68 тестов на сервере, включая скрытые.