🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
ProgerLib Python para todos
quatro amigos & mdash; Roma (T.I.), Maxim (químico), Danik (designer) e Vlad (pessoa versátil) & mdash; criaram um chat comum para trocar memes. Para não se distraírem do trabalho com piadas inadequadas, decidiram escrever um bot que determinará automaticamente o tema do meme e o enviará apenas para a pessoa interessada. Sua tarefa & mdash; escrever um núcleo para este bot.
rn regras de classificação:
você recebe na entrada uma linha & mdash; Este é o texto do meme. O bot deve analisá-lo e determinar a categoria pela presença de certas letras:
regra chave (resolução de conflitos):
o meme pode se encaixar em várias categorias ao mesmo tempo. Nesse caso, ele deve ser enviado para aquele cuja categoria "terminou" antes. A categoria é considerada "completa" no momento em que a última das letras necessárias para ela é encontrada na linha & nbsp; . O bot deve escolher a categoria com o menor índice de conclusão.
você precisa escrever um programa que aceite uma linha (meme) e exiba o nome do destinatário.
Uma linha, que é um 'meme' (tipo: string).
Nome do destinatário (tipo: string).
submergedits
Roma
from collections import Counter
def find_completion_index(meme, required_letters):
"""
Находит индекс, на котором категория считается "завершенной".
Возвращает индекс или очень большое число, если категория не подходит.
"""
# Создаем счетчик необходимых букв (например, для 'boom' -> {'b': 1, 'o': 2, 'm': 1})
required_counts = Counter(required_letters)
current_counts = Counter()
# Проверяем, выполнены ли все условия
def are_requirements_met():
for char, count in required_counts.items():
if current_counts[char] < count:
return False
return True
# Идем по строке и считаем буквы
for i, char in enumerate(meme):
if char in required_counts:
current_counts[char] += 1
# Как только все буквы найдены, возвращаем текущий индекс
if are_requirements_met():
return i
# Если цикл закончился, а буквы не найдены, возвращаем "бесконечность"
return float('inf')
# Получаем текст мема
meme_text = input()
# Создаем список кандидатов с их условиями
candidates = [
('Roma', 'bug'),
('Maxim', 'boom'),
('Danik', 'edits')
]
# Находим "индекс завершения" для каждого кандидата
results = []
for name, letters in candidates:
index = find_completion_index(meme_text, letters)
results.append((index, name))
# Находим победителя. Функция min() для кортежей (индекс, имя)
# автоматически выберет тот, у которого первый элемент (индекс) наименьший.
winner_index, winner_name = min(results)
# Если минимальный индекс остался "бесконечным", значит, никто не подошел
if winner_index == float('inf'):
print("Vlad")
else:
print(winner_name)
🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
AD
Publicidade
Executando seu código...