Программирование Python Нужно подробно объяснить принцип работы кода
Условие задачи
Рассмотрим слова из больших латинских букв и шаблоны, состоящие из больших латинских букв и символов «?» и «*».
Будем считать, что слово подходит под шаблон, если в шаблоне можно заменить каждый символ «?» на большую латинскую букву, а каждый символ «*» – на последовательность (возможно, пустую) больших латинских букв, так, чтобы получилось требуемое слово. Написать программу, определяющую, подходит ли слово под шаблон.
Входные данные - две строки: в одной строке записан шаблон – последовательность больших латинских букв, «?» и «*», в другой – слово, состоящее только из больших латинских букв. Обе строки не превышают 255 символов.
Выходные данные - необходимо вывести слово «YES», если слово подходит под шаблон и «NO» в противном случае.
Пример
Ввод:
ABBCDA
A*CDA
Вывод:
YES
Код
# Ввод данных
s = input("Слово: ")
p = input("Шаблон: ")
# match возвращает True, если подстрока s, начинающаяся с позиции spos,
# соответствует шаблону (подстрока p, которая начинается
# с позиции ppos)
def match(spos, ppos):
if (spos == len(s)) or (ppos == len(p)):
return (spos == len(s) and ppos == len(p))
elif p[ppos] == '?':
return match(spos + 1, ppos + 1)
elif p[ppos] == '*':
for i in range(spos, len(s)):
if match(i, ppos + 1):
return True
else:
return (s[spos] == p[ppos]) and (match(spos + 1, ppos + 1))
return False
if match(0, 0):
print('YES')
else:
print('NO')
122
218
Ответы на вопрос:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
rublevaelina5718.06.2020 05:32
-
1302201024.01.2020 05:55
-
WERTO12430.11.2022 08:17
-
Испан104.07.2021 21:07
-
Карина220328.07.2022 23:08
-
AnjelikaM118.07.2022 22:06
-
mariakyzminova22.04.2022 09:15
-
fuguh23.09.2020 13:12
-
Jdjsjsbbsbsbдевочка02.03.2021 18:36
-
Lizzzzxff09.09.2022 04:09
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.