Декодування стисненої послідовності ДНК
Вам потрібно написати функцію def decode_dna(encoded: str) -> str
, яка декодує стиснену послідовність ДНК у її оригінальний вигляд. Стиснена послідовність ДНК записується у форматі RLE (Run-Length Encoding), де кожній букві (A
, T
, G
, C
) передує число, яке означає кількість повторів цієї букви.
Наприклад:
- Стиснена послідовність
4A3T2C1G
розшифровується якAAAATTTCCG
. - Якщо перед буквою немає числа, вважається, що вона зустрічається один раз.
Вимоги до функції
- Функція приймає на вхід рядок у форматі стисненої послідовності ДНК.
- Повертає декодований рядок.
- Всі вхідні символи завжди будуть валідними (тобто лише цифри та літери
A
,T
,G
,C
). - Послідовність може містити як цифри перед літерами, так і окремі літери без чисел.
Приклад роботи
print(decode_dna("4A3T2C1G"))
# Результат: 'AAAATTTCCG'
print(decode_dna("A2T3G"))
# Результат: 'ATTGGG'
print(decode_dna("5C2A1T"))
# Результат: 'CCCCCAAT'
print(decode_dna("A"))
# Результат: 'A'
Підказки
- Використовуйте цикл для проходження по рядку.
- Зберігайте кількість повторів у тимчасовій змінній і оновлюйте її, коли знаходите цифру.
- Декодуйте символи, додаючи їх до результату у відповідній кількості.
- Перевірте всі можливі комбінації вхідних даних:
- Літери без чисел.
- Літери з числами.
- Випадок, коли рядок складається лише з однієї літери.