Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.03.2024
Сообщений: 68

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

29.04.2024, 20:47. Показов 1029. Ответов 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,706
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,706
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,706
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
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru