🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
ProgerLib Python para todos
Cuatro amigos & mdash; Roma (ITSHNIK), Maxim (químico), Danik (diseñador) y Vlad (persona versátil) & mdash; crearon un chat común para intercambiar memes. Para no distraerse mutuamente del trabajo con bromas inapropiadas, decidieron escribir un bot que determine automáticamente el tema del meme y lo envíe solo a la persona interesada. Tu tarea & mdash; escribir un núcleo para este bot.
rn Reglas de clasificación:
Recibes como entrada una línea & mdash; Este es el texto del meme. El bot debe analizarlo y determinar la categoría según la presencia de ciertas letras:
Regla clave (resolución de conflictos):
El meme puede encajar en varias categorías al mismo tiempo. En este caso, debe enviarse a aquellos cuya categoría "terminó" antes. La categoría se considera "completada" en el momento en que se encuentra la última de las letras necesarias para ella en la línea & nbsp; . El bot debe elegir la categoría con el índice de finalización más pequeño.
Debes escribir un programa que acepte una línea (meme) y muestre el nombre del destinatario.
Una línea, que es un 'meme' (tipo: string).
Nombre del destinatario (tipo: cadena).
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)
🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
AD
Publicidad
Ejecutando tu código...