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

पाठ 3. FOR cycle

कठिनाई:

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

कार्य«मिश्रित सरणी का योग»

💻 Python

आपको एक पंक्ति दी जाएगी जो एक निश्चित नियम के अनुसार "पैक" की गई है:   k [subject]   का अर्थ है कि वर्गाकार कोष्ठकों के अंदर का   subject   ठीक   k   बार दोहराया जाता है। संख्या   k   हमेशा एक धनात्मक पूर्णांक होती है। आपका कार्य — प्रारंभिक पंक्ति को "अनपैक" करना है।

ध्यान दें कि पंक्तियाँ एक-दूसरे के अंदर निवेशित हो सकती हैं। उदाहरण के लिए,   3[a2[c]]   का अर्थ है कि पंक्ति   a2[c]   को 3 बार दोहराया गया है। पहले आपको आंतरिक भाग   2[c]   को   cc   में अनपैक करना होगा, फिर इसे   a...   में प्रतिस्थापित करके   acc   प्राप्त करना होगा, और अंत में   acc   को 3 बार दोहराकर   accaccacc   प्राप्त करना होगा।

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

एक पंक्ति बिना अंतराल के जिसमें लैटिन वर्णमाला के छोटे अक्षर, संख्याएँ और वर्गाकार कोष्ठक & nbsp; [ & nbsp; और & nbsp; ] शामिल हैं। यह सुनिश्चित है कि इनपुट पंक्ति हमेशा सही होती है (कोई बंद न हुए कोष्ठक नहीं होते, संख्या हमेशा खुलने वाले कोष्ठक से पहले आती है, आदि)।

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

एक पंक्ति & mdash; पूर्ण अनपैकिंग का परिणाम।

उदाहरण

इनपुट

3 [a] 2 [bc]

आउटपुट

aaabcbc

संकेत

There will be no clue here, decide for yourself!

main.py
परीक्षण 1
परीक्षण 2
परीक्षण 3
परीक्षण 4
परीक्षण 5
परीक्षण 6
परीक्षण 7
परीक्षण 8
परीक्षण 9
परीक्षण 10
डेवलपर का समाधान
def unpack_string(s: str) -> str:
    """
    Распаковывает строку вида k[substring], включая вложенные структуры.
    """
    stack = []
    current_num = 0
    current_string = ''

    for char in s:
        if char.isdigit():
            # Собираем число, если оно многозначное (например, 10, 12)
            current_num = current_num * 10 + int(char)
        elif char == '[':
            # Начало новой подстроки. Сохраняем текущее состояние в стек.
            # Сохраняем текущую строку и число-повторитель для нее.
            stack.append(current_string)
            stack.append(current_num)
            # Сбрасываем переменные для нового уровня вложенности.
            current_string = ''
            current_num = 0
        elif char == ']':
            # Конец подстроки. Достаем из стека предыдущее состояние.
            num = stack.pop()
            prev_string = stack.pop()
            # Формируем новую текущую строку, повторяя распакованный фрагмент
            # и добавляя его к строке предыдущего уровня.
            current_string = prev_string + current_string * num
        else:
            # Просто добавляем букву к текущей строке.
            current_string += char
            
    return current_string


input_string = input()
result = unpack_string(input_string)
print(result)

🎉 बधाई! 🎉

आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।

AD

विज्ञापन

red-snake blue-snake green-snake

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

AI सहायक

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