• 1
    डेटा I/O
    • कार्य
  • 2
    शर्तें
    • कार्य
  • 3
    for लूप
    • कार्य
  • 4
    स्ट्रिंग
    • कार्य
  • 5
    while लूप
    • कार्य
  • 6
    सूचियां
    • कार्य
  • 7
    2D मैट्रिक्स
    • कार्य
  • 8
    डिक्शनरी
    • कार्य
  • 9
    सेट
    • कार्य
  • 10
    फ़ंक्शन
    • कार्य
  • к

पाठ 4. Lines

कठिनाई:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

कार्य«पंक्ति चिह्न आवृत्ति»

💻 Python

कल्पना करें कि आप एक रिकॉर्डिंग स्टूडियो में एक संगीत निर्माता के रूप में काम कर रहे हैं। हर दिन आपको दर्जनों छोटे संगीत नमूने (लयबद्ध पैटर्न) मिलते हैं। उनमें से कुछ & mdash; यह सिर्फ एक बहुत छोटा मकसद है, जो कई बार दोहराया जाता है, जबकि अन्य & mdash; अधिक जटिल और अद्वितीय धुनें हैं। आपका कार्य & mdash; समय बचाना और एक विश्लेषक प्रोग्राम लिखना जो सरल दोहराए जाने वाले नमूनों को जटिल नमूनों से जल्दी अलग करने में मदद करेगा।


आप एक नमूने को एक पंक्ति के रूप में प्रस्तुत करेंगे जहां प्रत्येक प्रतीक & mdash; यह एक नोट या ताल ध्वनि है (उदाहरण के लिए, "ABABAB" या "TAKADIMITAKADIMI")। प्रोग्राम को यह निर्धारित करना चाहिए कि क्या पूरी पंक्ति अपने किसी छोटे प्रारंभिक भाग की पुनरावृत्ति है।


उदाहरण के लिए:



  • नमूना & nbsp; "ababab" & nbsp; धुन & nbsp; "ab" & nbsp; की 3 बार पुनरावृत्ति है। तो यह एक सरल नमूना है। परिणाम: & nbsp; true

  • नमूना & nbsp; "abcabc" & nbsp; धुन & nbsp; "abc" & nbsp; की 2 बार पुनरावृत्ति है। परिणाम: & nbsp; true

  • नमूना & nbsp; "abasde" & nbsp; अपने किसी भी प्रारंभिक भाग की पुनरावृत्ति नहीं है। परिणाम: & nbsp; false

  • नमूना & nbsp; "aaaa" & nbsp; & nbsp; "a" & nbsp; की 4 बार पुनरावृत्ति है। परिणाम: & nbsp; true


आपको एक प्रोग्राम लिखना होगा जो इनपुट के रूप में एक पंक्ति (नमूना) लेता है और & nbsp; true & nbsp; आउटपुट करता है यदि यह एक पुनरावृत्ति है, और & nbsp; false & nbsp; अन्यथा।

इनपुट फॉर्मेट

संगीत नमूना (प्रकार: पंक्ति)। यह एक पंक्ति है जिसमें कोई अंतराल नहीं है, जिसे उपयोगकर्ता दर्ज करता है।

आउटपुट फॉर्मेट

जाँच का परिणाम (प्रकार: संक्षिप्त मान)। यह या तो शब्द   true है, या शब्द   false है।

उदाहरण

इनपुट

गोगोगो

आउटपुट

सत्य

संकेत

There will be no clue here, decide for yourself!

main.py
परीक्षण 1
परीक्षण 2
परीक्षण 3
परीक्षण 4
परीक्षण 5
परीक्षण 6
परीक्षण 7
परीक्षण 8
परीक्षण 9
परीक्षण 10
डेवलपर का समाधान
# Получаем строку от пользователя
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

विज्ञापन

red-snake blue-snake green-snake

कोड चल रहा है...

AI सहायक

नमस्ते! मैं आपका प्रोग्रामिंग सहायक हूँ। Python के बारे में कोई भी सवाल पूछें — मैं functions, methods समझा सकता हूँ और मौजूदा task में मदद कर सकता हूँ!