🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
ProgerLib Python para todos
Você receberá uma linha "empacotada" de acordo com uma certa regra: k[assunto] significa que o texto assunto dentro dos colchetes é repetido exatamente k vezes. O número k é sempre um inteiro positivo. Sua tarefa — "desempacotar" a linha inicial.
Observe que as linhas podem estar aninhadas umas nas outras. Por exemplo, 3[a2[c]] significa que a linha a2[c] é repetida 3 vezes. Primeiro você precisa desempacotar a parte interna 2[c] em cc , depois substituí-la em a... , obtendo acc , e no final repetir acc 3 vezes para obter accaccacc .
Uma linha sem espaços contendo letras minúsculas do alfabeto latino, números e colchetes & nbsp;
Uma linha & mdash; O resultado da descompactação completa.
3 [a] 2 [bc]
aaabcbc
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)
🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
AD
Publicidade
Executando seu código...