Стиснення послідовності ДНК

Послідовності ДНК складаються з чотирьох типів нуклеотидів: A, T, G, C. Іноді такі послідовності містять повторювані символи, які можна стиснути. Наприклад, замість запису AAAATTTCCGGG можна використовувати компактний формат 4A3T2C3G, де кожна літера супроводжується кількістю її повторів.

Вам потрібно написати функцію compress_dna(text: str) -> str, яка:

  1. Приймає на вхід рядок, що представляє послідовність ДНК.
  2. Виконує компресію, замінюючи підрядні повторювані символи їх кількістю та відповідною літерою.
  3. Повертає компресовану послідовність.

Вимоги до реалізації

  1. Якщо символ зустрічається лише один раз, кількість перед ним не вказується (наприклад, A замість 1A).
  2. Вхідний рядок завжди складається лише з символів A, T, G, C.
  3. Програма повинна бути стійкою до послідовностей будь-якої довжини.

Приклад роботи програми

>>> compress_dna("AAAATTTCCGGG")
4A3T2C3G

>>> compress_dna("ATGCC")
ATGC2C

>>> compress_dna("A")
A