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

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

29.04.2024, 20:47. Показов 984. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru