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

Массив. Выведите остановки самого длинного маршрута

19.01.2023, 13:15. Показов 10485. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На кольцевом маршруте автобуса из-за ремонта перекрыли движение около 2 остановок. Теперь там нельзя проехать.
Выведите массив с самым длинным маршрутом, который теперь может проехать автобус. Если маршрутов максимальной длины несколько, можно вывести любой.
Есть число N и N строк с названиями остановок. Затем ещё в 2 строках записаны 2 остановки из этого списка.
Выведите остановки самого длинного маршрута, который может проехать автобус. Остановки могут начинаться с любого конца маршрута, но следовать в правильном порядке.

Ввод в столбик
8
Кукушкино
Петрово
Пляж
Сосенское
Улыбино
Редкая Роща
Усадьба
Поленово
Пляж
Редкая Роща

Вывод в столбик
Петрово
Кукушкино
Поленово
Усадьба
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.01.2023, 13:15
Ответы с готовыми решениями:

Найдите и выведите длину самого длинного слова
Дана строка, состоящая из слов, записанных через пробел. Найдите и выведите длину самого длинного слова. Слово - непрерывная...

Используя итератор zip, найдите и выведите на экран координаты самого длинного отрезка
C клавиатуры в программу передаются две строки. В первой написаны через пробел координаты начал отрезков, во второй – координаты концов. В...

Ввести массив символов, содержащий текст. Определить длину самого короткого слова и самого длинного слова
Ввести массив символов, содержащий текст. Определить длину самого короткого слова и самого длинного слова..

26
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
19.01.2023, 15:24
Python
1
2
3
4
5
6
7
b = []
for _ in range(int(input())):
    b.append(input())
r1 = b.index(input())
r2 = b.index(input())
r1, r2 = min(r1, r2), max(r1, r2)
print(*(b[r1:r2] if len(b[r1:r2]) > len(b[r2 + 1:] + b[:r1]) else b[r2 + 1:] + b[:r1]), sep='\n')
0
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80
19.01.2023, 15:31  [ТС]
Ошибка "Длина маршрута неверная, максимальная длина 6."

И в выводе вот это:
Кукушкино
Петрово
Пляж
Сосенское
Улыбино
Редкая Роща
Усадьба
0
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80
19.01.2023, 16:25  [ТС]
Скриншот:
Миниатюры
Массив. Выведите остановки самого длинного маршрута  
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
19.01.2023, 17:17
Первый ввод должен быть "8", а на "Кукушкино"
0
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80
19.01.2023, 18:07  [ТС]
Да, первый ввод 8.
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
19.01.2023, 19:09
juvics260, Судя по ошибке - нет. Преобразование в int только в одном месте и это первый input. Тут я бессилен.
0
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80
19.01.2023, 19:16  [ТС]
То есть ошибка в задании?
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
19.01.2023, 19:18
juvics260, Не знаю. Попробуйте вместо
Python
1
for _ in range(int(input())):
написать
Python
1
for _ in range(8):
0
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80
19.01.2023, 19:18  [ТС]
Еще скриншот:
Миниатюры
Массив. Выведите остановки самого длинного маршрута  
0
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80
19.01.2023, 19:24  [ТС]
Попробовала.
ValueError("'Поленово' is not in list")
0
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
19.01.2023, 19:47
juvics260,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
n = int(input())
stops = [input() for _ in range(n)]
a, b = input(), input()
 
# Find the start and end indices of the blocked section
start_index = stops.index(a)
end_index = stops.index(b)
 
# Create the two possible routes
route1 = stops[start_index:end_index+1]
route2 = stops[end_index:] + stops[:start_index+1]
 
# Determine the longest route and print it
longest_route = route1 if len(route1) > len(route2) else route2
print("\n".join(longest_route))
Добавлено через 1 минуту
Неправильный код, ща перепишу

Добавлено через 8 секунд
Python
1
2
3
4
5
6
7
8
9
10
n = int(input())
stops = [input() for i in range(n)]
start, end = input(), input()
 
route = stops[stops.index(start):] + stops[:stops.index(end)]
 
if start in stops[stops.index(end):]:
    route = stops[stops.index(end):stops.index(start)]
 
print(*route, sep='\n')
0
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80
19.01.2023, 19:48  [ТС]
Ошибка "Длина маршрута неверная, максимальная длина 4."
0
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
19.01.2023, 19:49
И опять не то(
0
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80
19.01.2023, 19:52  [ТС]
Господа, давайте уже плюнем на эту задачу.)
0
19.01.2023, 20:12

Не по теме:

Цитата Сообщение от juvics260 Посмотреть сообщение
Господа, давайте уже плюнем на эту задачу.)
у меня запас чипсов... понаблюдаем... ))

0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
19.01.2023, 20:24
Лучший ответ Сообщение было отмечено juvics260 как решение

Решение

Вот подправленный для ясности ввода код:
Python
1
2
3
4
5
6
7
8
b = []
for i in range(int(input('Количество остановок: '))):
    b.append(input(f'Остановка {i + 1}'))
r1 = b.index(input('Первая перекрытая:'))
r2 = b.index(input('Вторая перекрытая:'))
r1, r2 = min(r1, r2), max(r1, r2)
print('Самый длинный маршрут:')
print(*(b[r1:r2] if len(b[r1:r2]) > len(b[r2 + 1:] + b[:r1]) else b[r2 + 1:] + b[:r1]), sep='\n')
Вот ввод-вывод:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Количество остановок: 8
Остановка 1Кукушкино
Остановка 2Петрово
Остановка 3Пляж
Остановка 4Сосенское
Остановка 5Улыбино
Остановка 6Редкая Роща
Остановка 7Усадьба
Остановка 8Поленово
Первая перекрытая:Пляж
Вторая перекрытая:Редкая Роща
Самый длинный маршрут:
Усадьба
Поленово
Кукушкино
Петрово
Все работает.
0
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 12
22.01.2023, 22:00
Python
1
2
3
4
5
6
7
n = int(input())
lst = [input() for _ in range(n)]
a, b = input(), input()
s1 = lst[lst.index(a)+1:lst.index(b)]
s2 = lst[lst.index(b)+1:]+lst[:lst.index(a)]
if len(s1)>len(s2):print(*s1,sep='\n')
if len(s2)>len(s1):print(*s2,sep='\n')
0
1 / 1 / 0
Регистрация: 24.11.2023
Сообщений: 1
24.11.2023, 12:18
Надо учесть, что сломанные остановки могут вводиться в обратном порядке.
1
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
24.11.2023, 16:23
Lyapis,

Не по теме:

ААА!!! Некропостер!!!


А вот это:
Цитата Сообщение от Parramon Посмотреть сообщение
r1, r2 = min(r1, r2), max(r1, r2)
зачем, по твоему, написано?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2023, 16:23
Помогаю со студенческими работами здесь

Создать один многомерный массив по максимальной длине самого длинного массива
допустим есть несколько одномерных массивов разной длинны надо создать один многомерный массив по максимальной длине самого длинного...

Определение самого короткого и самого длинного слова во введенной строке текста
прошу помогите написать блок схему к задаче. Создать в системе программирования Visual Studio 200* проект VB-программы с одной формой для...

Определить длину самого короткого самого длинного слова в массиве символов
Ввести массив символов, содержащий текст. Определить длину самого короткого слова и самого длинного слова

В задаваемой строке определить длину самого короткого и самого длинного слова
В задаваемой строке определить длину самого короткого и самого длинного слова.

Процедура: определить в строке длину самого короткого и самого длинного слова
var str: string; len, i: byte; shortest, longest, current: byte; begin readln(str); len := length(str); ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru