TS: функция преобразования к каноническому пути

Увидел эту задачу на leetcode — https://leetcode.com/problems/simplify-path/, где не так часто встречаются задачи близкие к практиктическому программированию. Ранее уже приводил решение подобной задачи для PHP. Здесь порешаем её уже на TS.

Задача упростить заданный UNIX путь, используя следующие правила:

  • /.. — спуститься на уровень ниже,
  • // — серия слешей должны трактоваться как один слеш,
  • слеш в конце пути можно опустить,
  • «.» — одиночная точка — ссылка на текущий каталог, т.е. по сути её можно опустить.

Решение

Разобьём начальный путь по символу «/», потом соберем канонический путь, следуя правилам выше.

Мало букафф? Читайте есчо !

Поиск выхода из лабиринта

Июнь 3, 2023 г.

Продолжаем разбор классических задач по программированию. На этот раз лабиринтовая задача, которая формулируется так - дан плоский лабиринт в виде двумерного массива, где стенка отмечена 1, а свободный участок как 0. Также дана начальная позиция игрока, ...

Читать

Подсчет кол-ва нулевых подмассивов

Март 21, 2023 г.

Разбор задачи с литкода. (2348. Number of Zero-Filled Subarrays). Суть: есть массив чисел, нужно подсчитать кол-во подмассивов, состоящих из нулей. Например, дан массив [0, 0, 1]. Как видим, есть последовательность из двух нулей в начале ...

Читать

Поиск самой длинной петли в графе

Март 26, 2023 г.

Как говорили учителя в школе - а теперь для самых умных задача со звездочкой. "Longest cycle in a graph" отмечена как сложная задача на leetcode. Давайте разберем как её решить. Дан массив, который описывает ориентированный граф. В каждой ячейке ...

Читать

Классическая задача о размене монет

Январь 24, 2023 г.

Дана сумма amount и номиналы монет. Требуется разменять сумму минимальным набором монет. Если рассматривать набор монет, который используется в реальной жизни, т.е. [1коп, 5коп, 10коп, 50коп, 1р, 2р, 5р, 10р], то во-первых, решение всегда существует, ...

Читать
 

Комментарии к «TS: функция преобразования к каноническому пути»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: