Ctrl K

Причесать путь к папке

Средняя
Пользователь набрал в адресной строке файлового менеджера абсолютный путь route — он всегда начинается со слэша /. Приведите его к короткому каноническому виду. Как читается путь: - . — текущая папка, её можно просто пропустить; - .. — подняться в родительскую папку; из корня подниматься некуда, поэтому там .. ничего не делает; - несколько слэшей подряд (//, ///) равносильны одному; - любые другие сочетания точек, например ... или ...., — обычные имена папок. Канонический путь начинается с одного /, папки в нём разделены ровно одним слэшем, в конце слэша нет (кроме случая, когда весь путь — это корень /), и в нём не встречаются . и .. как переходы. Верните этот путь строкой.
Пример 1
route="/docs//drafts/./final/" → '/docs/drafts/final'

Двойной слэш схлопывается, . означает «остаться на месте», завершающий слэш убирается.

Пример 2
route="/music/rock/../jazz/.." → '/music'

Из rock поднимаемся обратно в music, заходим в jazz и снова поднимаемся — остаётся /music.

Пример 3
route="/../../.../x" → '/.../x'

Выше корня подняться нельзя, а ... — обычное имя папки.

Ограничения
  • 1 ≤ len(route) ≤ 3000
  • route состоит из латинских букв, цифр, символов ., / и _
  • route начинается с /
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКалькулятор на четыре действия СредняяКаждая буква по разу СредняяЗапись дерева с решётками СредняяДлина самого длинного пути к файлу СредняяРаскрыть скобки повторов Средняя
загружаем Python…
Вход
route="/docs//drafts/./final/"
Ожидается
'/docs/drafts/final'

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