Декодування стисненої послідовності ДНК

Вам потрібно написати функцію def decode_dna(encoded: str) -> str, яка декодує стиснену послідовність ДНК у її оригінальний вигляд. Стиснена послідовність ДНК записується у форматі RLE (Run-Length Encoding), де кожній букві (A, T, G, C) передує число, яке означає кількість повторів цієї букви.

Наприклад:

  • Стиснена послідовність 4A3T2C1G розшифровується як AAAATTTCCG.
  • Якщо перед буквою немає числа, вважається, що вона зустрічається один раз.

Вимоги до функції

  1. Функція приймає на вхід рядок у форматі стисненої послідовності ДНК.
  2. Повертає декодований рядок.
  3. Всі вхідні символи завжди будуть валідними (тобто лише цифри та літери A, T, G, C).
  4. Послідовність може містити як цифри перед літерами, так і окремі літери без чисел.

Приклад роботи

print(decode_dna("4A3T2C1G"))  
# Результат: 'AAAATTTCCG'

print(decode_dna("A2T3G"))  
# Результат: 'ATTGGG'

print(decode_dna("5C2A1T"))  
# Результат: 'CCCCCAAT'

print(decode_dna("A"))  
# Результат: 'A'

Підказки

  1. Використовуйте цикл для проходження по рядку.
  2. Зберігайте кількість повторів у тимчасовій змінній і оновлюйте її, коли знаходите цифру.
  3. Декодуйте символи, додаючи їх до результату у відповідній кількості.
  4. Перевірте всі можливі комбінації вхідних даних:
  5. Літери без чисел.
  6. Літери з числами.
  7. Випадок, коли рядок складається лише з однієї літери.