🎉 बधाई! 🎉
आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।
ProgerLib सभी के लिए Python
कल्पना करें कि आप एक रिकॉर्डिंग स्टूडियो में एक संगीत निर्माता के रूप में काम कर रहे हैं। हर दिन आपको दर्जनों छोटे संगीत नमूने (लयबद्ध पैटर्न) मिलते हैं। उनमें से कुछ & mdash; यह सिर्फ एक बहुत छोटा मकसद है, जो कई बार दोहराया जाता है, जबकि अन्य & mdash; अधिक जटिल और अद्वितीय धुनें हैं। आपका कार्य & mdash; समय बचाना और एक विश्लेषक प्रोग्राम लिखना जो सरल दोहराए जाने वाले नमूनों को जटिल नमूनों से जल्दी अलग करने में मदद करेगा।
आप एक नमूने को एक पंक्ति के रूप में प्रस्तुत करेंगे जहां प्रत्येक प्रतीक & mdash; यह एक नोट या ताल ध्वनि है (उदाहरण के लिए, "ABABAB" या "TAKADIMITAKADIMI")। प्रोग्राम को यह निर्धारित करना चाहिए कि क्या पूरी पंक्ति अपने किसी छोटे प्रारंभिक भाग की पुनरावृत्ति है।
उदाहरण के लिए:
"ababab" & nbsp; धुन & nbsp; "ab" & nbsp; की 3 बार पुनरावृत्ति है। तो यह एक सरल नमूना है। परिणाम: & nbsp; true "abcabc" & nbsp; धुन & nbsp; "abc" & nbsp; की 2 बार पुनरावृत्ति है। परिणाम: & nbsp; true "abasde" & nbsp; अपने किसी भी प्रारंभिक भाग की पुनरावृत्ति नहीं है। परिणाम: & nbsp; false "aaaa" & nbsp; & nbsp; "a" & nbsp; की 4 बार पुनरावृत्ति है। परिणाम: & nbsp; true आपको एक प्रोग्राम लिखना होगा जो इनपुट के रूप में एक पंक्ति (नमूना) लेता है और & nbsp; true & nbsp; आउटपुट करता है यदि यह एक पुनरावृत्ति है, और & nbsp; false & nbsp; अन्यथा।
संगीत नमूना (प्रकार: पंक्ति)। यह एक पंक्ति है जिसमें कोई अंतराल नहीं है, जिसे उपयोगकर्ता दर्ज करता है।
जाँच का परिणाम (प्रकार: संक्षिप्त मान)। यह या तो शब्द true है, या शब्द false है।
गोगोगो
सत्य
# Получаем строку от пользователя
input_string = input()
# Получаем длину введенной строки
n = len(input_string)
# Создаем флаг, который покажет, нашли ли мы подходящий шаблон. Изначально считаем, что не нашли.
found_pattern = False
# Начинаем цикл для проверки всех возможных длин подшаблона.
# Длина подшаблона (i) может быть от 1 до половины длины всей строки.
# Длиннее половины быть не может, так как шаблон должен повториться хотя бы дважды.
for i in range(1, n // 2 + 1):
# Проверяем, делится ли длина всей строки нацело на длину предполагаемого шаблона.
# Если нет, то из такого шаблона целую строку составить нельзя.
if n % i == 0:
# Если делится, то у нас есть кандидат в шаблоны.
# Это начальная часть строки длиной i.
pattern = input_string[:i]
# Вычисляем, сколько раз наш кандидат-шаблон должен повториться, чтобы получить строку нужной длины.
num_repeats = n // i
# Создаем тестовую строку, повторяя наш кандидат-шаблон нужное количество раз.
test_string = pattern * num_repeats
# Сравниваем созданную тестовую строку с оригинальной.
if test_string == input_string:
# Если они совпали, значит, мы нашли повторяющийся шаблон.
found_pattern = True
# Прерываем цикл, так как дальнейшие проверки не нужны.
break
# После завершения цикла выводим значение флага.
# Если мы нашли шаблон, он будет True, если нет - останется False.
print(found_pattern)
🎉 बधाई! 🎉
आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।
AD
विज्ञापन
कोड चल रहा है...