🎉 تهانينا! 🎉
لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.
ProgerLib Python للجميع
تغيير السمة
أربعة أصدقاء & mdash; روما (متخصص تكنولوجيا المعلومات)، مكسيم (كيميائي)، دانيك (مصمم) وفلاد (شخص متعدد المهارات) & mdash; أنشأوا محادثة مشتركة لتبادل الميمات. حتى لا يشتت كل منهم الآخر عن العمل بنكات غير مناسبة، قرروا كتابة بوت يقوم تلقائيًا بتحديد موضوع الميم وإرساله فقط إلى الشخص المهتم. مهمتك & mdash; كتابة النواة لهذا البوت.
rn قواعد التصنيف:
تحصل على الإدخال سطرًا & mdash; هذا هو نص الميم. يجب على البوت تحليله وتحديد الفئة بناءً على وجود أحرف معينة:
القاعدة الأساسية (حل النزاعات):
قد ينطبق الميم على عدة فئات في نفس الوقت. في هذه الحالة، يجب إرساله إلى الشخص الذي "اكتملت" فئته أولاً. تعتبر الفئة "مكتملة" في اللحظة التي يتم فيها العثور على آخر حرف من الأحرف اللازمة لها في السطر. يجب على البوت اختيار الفئة ذات مؤشر الاكتمال الأصغر.
تحتاج إلى كتابة برنامج يستقبل سطرًا واحدًا (ميم) ويعرض اسم المستلم.
سطر واحد، وهو "ميم" (النوع: نص).
اسم المستلم (النوع: نص).
غمرها
روما
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)
🎉 تهانينا! 🎉
لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.
AD
إعلان
جارٍ تشغيل الكود...