Ctrl K

Только внешние папки

Средняя
Резервное копирование настроено на список папок paths. Если папка лежит внутри другой папки из того же списка, копировать её отдельно незачем — она и так попадёт в копию. Папка b лежит внутри папки a, если путь b начинается с a, за которым сразу идёт /. Например, /x/y лежит внутри /x, а /xy — нет. Каждый путь состоит из одного или нескольких фрагментов вида / + непустое имя из строчных латинских букв, цифр и _. Все пути различны. Верните папки из списка, которые не лежат ни в какой другой папке списка, в любом порядке.
Пример 1
paths=['/home/anna', '/srv', '/home/anna/music', '/srv/www/static', '/home/bob'] → ['/home/anna', '/home/bob', '/srv']

/home/anna/music лежит внутри /home/anna, а /srv/www/static — внутри /srv, их убираем.

Пример 2
paths=['/log', '/logs', '/log/old'] → ['/log', '/logs']

/logs начинается с /log, но это другая папка, а не вложенная: после /log должен идти /.

Ограничения
  • 1 ≤ len(paths) ≤ 4·10⁴
  • 2 ≤ len(paths[i]) ≤ 100
  • Пути состоят из строчных латинских букв, цифр, _ и /, начинаются с / и не заканчиваются им
  • Все пути различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСлова из других слов СложнаяСлово на сетке букв СредняяРазбиение на слова из словаря СредняяЦепочки отношений СредняяПодсветить найденное Средняя
загружаем Python…
Вход
paths=['/home/anna', '/srv', '/home/anna/music', '/srv/www/static', '/home/bob']
Ожидается
['/home/anna', '/home/bob', '/srv']

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