Стиснення послідовності ДНК
Послідовності ДНК складаються з чотирьох типів нуклеотидів: A
, T
, G
, C
.
Іноді такі послідовності містять повторювані символи, які можна стиснути.
Наприклад, замість запису AAAATTTCCGGG
можна використовувати компактний формат
4A3T2C3G
, де кожна літера супроводжується кількістю її повторів.
Вам потрібно написати функцію compress_dna(text: str) -> str
, яка:
- Приймає на вхід рядок, що представляє послідовність ДНК.
- Виконує компресію, замінюючи підрядні повторювані символи їх кількістю та відповідною літерою.
- Повертає компресовану послідовність.
Вимоги до реалізації
- Якщо символ зустрічається лише один раз, кількість перед ним не вказується (наприклад,
A
замість1A
). - Вхідний рядок завжди складається лише з символів
A
,T
,G
,C
. - Програма повинна бути стійкою до послідовностей будь-якої довжини.
Приклад роботи програми
>>> compress_dna("AAAATTTCCGGG")
4A3T2C3G
>>> compress_dna("ATGCC")
ATGC2C
>>> compress_dna("A")
A