K
Kotlin | LeetCode
@easy_kotlin_task1.8K подп.
118просмотров
6.6%от подписчиков
25 марта 2026 г.
statsScore: 130
Задача: 1166. Design File System Сложность: medium Вам нужно разработать файловую систему, которая позволяет создавать новые пути и связывать их с различными значениями. Формат пути - это одна или несколько конкатенированных строк в форме: /, за которой следует одна или несколько строчных английских букв. Например, "/leetcode" и "/leetcode/problems" - допустимые пути, в то время как пустая строка "" и "/" не допустимы. Реализуйте класс FileSystem: - bool createPath(string path, int value) создает новый путь и связывает с ним значение, если это возможно, и возвращает true. Возвращает false, если путь уже существует или его родительский путь не существует. - int get(string path) возвращает значение, связанное с путем, или возвращает -1, если путь не существует. Пример: Input: ["FileSystem","createPath","get"] [[],["/a",1],["/a"]] Output: [null,true,1] Explanation: FileSystem fileSystem = new FileSystem(); fileSystem.createPath("/a", 1); // return true fileSystem.get("/a"); // return 1 👨‍💻 Алгоритм: 1⃣Инициализируйте словарь или HashMap под названием paths, который будет использовать ключ в виде пути, переданного в нашу функцию create, и значение, переданное этой функции. 2⃣Для функции create выполняем три шага. Сначала выполняем базовую проверку валидности пути. Проверяем, является ли путь пустым, "/" или если путь уже существует в нашем словаре. Если любое из этих условий выполнено, просто возвращаем false. Затем получаем родительский путь предоставленного пути и проверяем его наличие в словаре. Если родительский путь не существует, возвращаем false, иначе продолжаем. 3⃣Наконец, вставляем предоставленный путь и значение в словарь и возвращаем true. Для функции get просто возвращаем значение по умолчанию -1, если путь не существует в словаре. В противном случае возвращаем фактическое значение. 😎 Решение: class FileSystem { private val paths = HashMap<String, Int>() fun createPath(path: String, value: Int): Boolean { if (path.isEmpty() || (path.length == 1 && path == "/") || paths.containsKey(path)) { return false } val delimIndex = path.lastIndexOf("/") val parent = path.substring(0, delimIndex) if (parent.length > 1 && !paths.containsKey(parent)) { return false } paths[path] = value return true } fun get(path: String): Int { return paths.getOrDefault(path, -1) } } Ставь 👍 и забирай 📚 Базу знаний
118
просмотров
2471
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_kotlin_task

Все посты канала →
Задача: 1166. Design File System Сложность: medium Вам нужно — @easy_kotlin_task | PostSniper