0 / 0 / 0
Регистрация: 28.03.2024
Сообщений: 68

Вывести все непустые директории в лексикографическом порядке

29.04.2024, 20:47. Показов 990. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вам дан список всех файлов в файловой системе. Вам необходимо вывести все непустые директории в лексикографическом порядке.

Гарантируется, что все пути начинаются от корня файловой системы. Гарантируется, что все пути состоят из слешей, латинских символов, цифр и точек. Гарантируется, что два слеша никогда не стоят подряд.

Формат входных данных
Входной файл содержит все пути в некоторой файловой системе. Каждый путь содержится в отдельной строке. Размер входного файла не больше 10Kb.

Формат результата
Выведите все непустые директории в этой файловой системе в лексикографическом порядке. Каждый путь должен начинаться со слеша и заканчиваться слешом.

Примеры
Входные данные
/docs/README.txt
/docs/LICENSE.txt
/boot/grub
/init
Результат работы
/
/boot/
/docs/
Входные данные
/home/guest/homework/A/main.cpp
/root/test.cpp
/root/tests/01
/root/tests/01.a
/bin/bash
/usr/bin/perl
Результат работы
/
/bin/
/home/
/home/guest/
/home/guest/homework/
/home/guest/homework/A/
/root/
/root/tests/
/usr/
/usr/bin/


Нужно решить задачу используя тему Множества

Добавлено через 4 часа 40 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def find_directories(file_paths):
    directories = set()
 
    for path in file_paths:
        parts = path.split('/')[1:-1]  
        current_dir = '/'
 
        for part in parts:
            current_dir += part + '/'
            directories.add(current_dir)  
 
    sorted_directories = sorted(directories) 
    for directory in sorted_directories:
        print(directory)
 
 
file_paths = ["/docs/README.txt", "/docs/LICENSE.txt", "/boot/grub", "/init"]
 
find_directories(file_paths)
Это мой код он выдает
/boot/
/docs/
вместо
/
/boot/
/docs/
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.04.2024, 20:47
Ответы с готовыми решениями:

Вывести в лексикографическом порядке все цифры, имеющиеся в массиве
Задан символьный массив, разработать программу, которая определяет и выводит в лексикографическом порядке все цифры, имеющиеся в массиве,...

вывести в лексикографическом порядке все правильные скобочные последовательности
помогите решить задачу в паскаль вывести в лексикографическом порядке все правильные скобочные последовательности

Рекурсия. Вывести на экран все перестановки чисел от 1 до n в лексикографическом порядке
При помощи рекурсии по данному числу n выведите на экран все перестановки чисел от 1 до n в лексикографическом порядке. Нужен текст...

5
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
29.04.2024, 21:38
Ну, так можно:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def get_dirs(file_paths):
    SEP = '/'
    res = set()
    for p in file_paths:
        while p != SEP:
            if p[-1] == SEP:
                p = p[:-1]
            L,sepp,R = p.rpartition(SEP)
            p = L + sepp
            res.add(p)
    return list(sorted(res))
 
file_paths = [
    '/home/guest/homework/A/main.cpp',
    '/root/test.cpp',
    '/root/tests/01',
    '/root/tests/01.a',
    '/bin/bash',
    '/usr/bin/perl'
]
print(*get_dirs(file_paths), sep='\n')
# /
# /bin/
# /home/
# /home/guest/
# /home/guest/homework/
# /home/guest/homework/A/
# /root/
# /root/tests/
# /usr/
# /usr/bin/
0
0 / 0 / 0
Регистрация: 28.03.2024
Сообщений: 68
29.04.2024, 22:02  [ТС]
Только там нужно чтобы входные данные нужно было вводить самостоятельно и программа выполняла работу по данному алгоритму
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
29.04.2024, 22:45
Цитата Сообщение от oxwaze Посмотреть сообщение
Только там нужно чтобы входные данные нужно было вводить самостоятельно и программа выполняла работу по данному алгоритму
Не получается? Элементарно, Ватсон!
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def get_dirs(file_paths_):
    SEP = '/'
    res = set()
    for p in file_paths_:
        while p != SEP:
            if p[-1] == SEP:
                p = p[:-1]
            L,sepp,R = p.rpartition(SEP)
            p = L + sepp
            res.add(p)
    return list(sorted(res))
 
with open('a.txt', 'r') as f:
    file_paths = f.readlines()
 
print(*get_dirs(file_paths), sep='\n')
0
0 / 0 / 0
Регистрация: 28.03.2024
Сообщений: 68
30.04.2024, 07:42  [ТС]
Программа выдает ошибку из за строки
Python
1
with open('a.txt', 'r') as f
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
30.04.2024, 10:07
Лучший ответ Сообщение было отмечено oxwaze как решение

Решение

Цитата Сообщение от oxwaze Посмотреть сообщение
Программа выдает ошибку из за строки
Python
1
with open('a.txt', 'r') as f:
Здесь 'a.txt' - это имя файла, из которого я скачивал входные данные.
Если через stdin вводить, то так можно:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from sys import stdin
 
def get_dirs(file_paths_):
    SEP = '/'
    res = set()
    for p in file_paths_:
        while p != SEP:
            if p[-1] == SEP:
                p = p[:-1]
            L, sepp, R = p.rpartition(SEP)
            p = L + sepp
            res.add(p)
    return list(sorted(res))
 
file_paths = stdin.readlines()
print(*get_dirs(file_paths), sep='\n')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.04.2024, 10:07
Помогаю со студенческими работами здесь

По исходной перестановке вывести все циклы, которые в ней есть, в лексикографическом порядке
Перестановкой π порядка n называется последовательность из n попарно различных целых положительных чисел p1, p2, ... , pn, где каждое 1...

Найти и вывести на экран в лексикографическом порядке все слова, начинающиеся на гласную букву
Доброго времени суток! Очень нужна помощь по задаче,сам на Паскале уже давно писал.А кто то за пару минут напишет... Заранее благодарю!...

Как удалить все файлы, пустые и непустые папки из текущей директории?
Подскажите, как удалить все файлы, пустые и непустые папки из текущей директории.

Привести в лексикографическом порядке (в порядке возрастания) все r-размещения с повторениями из элементов множества {1,2, .. n}
Нужно составить программу с указанными входными данными и результатами. Задано натуральное число n, которое имеет такое ограничение...

По заданным n, k и p вывести p-е в лексикографическом порядке сочетание из n по k
привет) помогите пожалуйста решить задачу Сочетание из n по k– это набор из k различных чисел, каждое из которых принимает значение от 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru