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

Задача Имена

07.08.2020, 07:55. Показов 8189. Ответов 4

Студворк — интернет-сервис помощи студентам
На далекой планете Тау Кита есть непонятные нам обычаи. Например, таукитяне очень необычно для землян выбирают имена своим детям. Родители так выбирают имя ребенку, чтобы оно могло быть получено как удалением некоторого набора букв из имени отца, так и удалением некоторого набора букв из имени матери. Например, если отца зовут «abacaba», а мать — «bbccaa», то их ребенок может носить имена «a», «bba», «bcaa», но не может носить имена «aaa», «ab» или «bbc». Возможно, что имя ребенка совпадает с именем отца и/или матери, если оно может быть получено из имени другого родителя удалением нескольких (возможно, ни одной) букв.

Пусть отец по имени X и мать по имени Y выбирают имя своему новорожденному ребенку. Так как в таукитянских школах учеников часто вызывают к доске в лексикографическом порядке имен учеников, то есть в порядке следования имен в словаре, то они хотят выбрать своему ребенку такое имя, чтобы оно лексикографически следовало как можно позже.

Формально, строка S лексикографически больше строки T, если выполняется одно из двух условий:

• строка T получается из S удалением одной или более букв с конца строки S;

• первые (i - 1) символов строк T и S не различаются, а буква в i-й позиции строки T следует в алфавите раньше буквы в i-й позиции строки S.

Требуется написать программу, которая по именам отца и матери находит лексикографически наибольшее имя для их ребенка.

Входные данные
Первая строка входного файла INPUT.TXT содержит имя отца X. Вторая строка входного файла содержит имя матери Y. Каждое имя состоит из строчных букв английского алфавита, включает хотя бы одну букву и имеет длину не более 105 букв.

Выходные данные
В выходной файл OUTPUT.TXT выведите искомое лексикографически наибольшее из возможных имен ребенка. В случае, если подходящего имени для ребенка не существует, выходной файл должен быть пустым.

Примеры

Ввод
abcabca
abcda
Вывод
ca

Ввод
ccba
accbbaa
Вывод
ccba

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
a = input()
b = input()
abc = 'zyxwvutsrqponmlkjihgfedcba'
s = 0
ans = ''
for i in range(len(abc)):
        if abc[i] in a and abc[i] in b:
            s = abc[i]
            ans = abc[i]
            break
while s != 0:
    a = a[a.find(s) + 1:]
    b = b[b.find(s) + 1:]
    s = 0
    for i in range(len(abc)):
        if abc[i] in a and abc[i] in b:
            s = abc[i]
            ans += abc[i]
            break
print(ans)
Этот код не проходит по времени. Помогите оптимизировать его. Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.08.2020, 07:55
Ответы с готовыми решениями:

Задача "Имена с ограничением"
Имена для зеленых человечков с ограничением Усовершенствуйте функцию для подбора имени маленьким зеленым человечкам из планетной...

Программа запрашивает имена и оценки и выводит словарь, где ключами являются имена, а значениями – оценки
Напишите программу, которая сначала запрашивает у пользователя имена студентов (любое количество) через пробел, затем их оценки через...

Задача "Имена"
Напишите программу, выбирающую из текста все имена и всех тех, к кому они могли относиться. Для этого из введённого текста выберите...

4
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
07.08.2020, 08:30
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mother, father = input(), input()
 
if len(father) > len(mother):
    sought, search = mother, father
else:
    sought, search = father, mother
 
name, i_so, i_se = "", 0, 0
for letter in sorted(sought, reverse=True):
    _i_so, _i_se = sought.find(letter, i_so), search.find(letter, i_se)
    if letter in search and _i_so >= i_so and _i_se >= i_se:
        i_so, i_se = _i_so, _i_se
        name += letter
 
 
print(name)
Добавлено через 10 минут
UPD:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mother, father = input(), input()
 
if len(father) > len(mother):
    sought, search = mother, father
else:
    sought, search = father, mother
 
name, i_so, i_se = "", -1, -1
for letter in sorted(sought, reverse=True):
    _i_so, _i_se = sought.find(letter, i_so + 1), search.find(letter, i_se + 1)
    print(letter, _i_so, _i_se)
    if letter in search and _i_so > i_so and _i_se > i_se:
        i_so, i_se = _i_so, _i_se
        name += letter
 
print(name)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.08.2020, 08:38
DmFat, что то мне подсказывает что это решение - "квадрат". тут через словарь можно сделать.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
07.08.2020, 08:43
eaa, не знаю, я не стал особо думать, наклацал решение по быстрому и пошел.
0
0 / 0 / 0
Регистрация: 06.08.2020
Сообщений: 9
08.08.2020, 08:01  [ТС]
Этот код не правильный, в первом тесте он выводит саа вместо са.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2020, 08:01
Помогаю со студенческими работами здесь

Задача "Имена"
Имена для зеленых человечков У каждого жителя планетной системы α−ω−Fomalgaut−4 (Альфа-Омега-Фомальгаут-4) обязательно должно быть...

Задача coursera Имена и фамилии 3
Выходит ошибка в 5 тесте, не могу понять что не так Дополните класс Person из задачи «Имена и фамилии — 2» конструктором,...

Задача про имена и фамилии
Всем доброго времени суток, возникли неприятности при решении одной задачи, ниже представлены условия данной задачи и мое решение (оно не...

Олимпиадная задача по программированию: Таджикские имена
Отсортировать N слов по алфавиту. Разделить по группам те которые заканчиваются на "хон",...

Вывести имена всех файлов в папке (задача с подвохом)
Друзья! Дело в том, что имена у файлов какие-то хитрые. Скачайте прилагающиеся два файла (они небольшие) , создайте папку foo и забросьте в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru