Посчитайте частоты символов в словаре, сохраняя порядок первого появления, затем объедините пары «символ + количество». Для 'abbc' получится 'a1b2c1'.
Реализовать функцию, считающую количество повторений каждого символа
Посчитайте частоты символов в словаре, сохраняя порядок первого появления, затем объедините пары «символ + количество». Для 'abbc' получится 'a1b2c1'.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Создайте функцию, принимающую строку и возвращающую новую строку, где каждый уникальный символ сопровождается числом, указывающим, сколько раз он встречается в исходном тексте. Пример: 'abbc' -> 'a1b2c1'.
Ответ
Посчитайте частоты символов в словаре, сохраняя порядок первого появления, затем объедините пары «символ + количество». Для 'abbc' получится 'a1b2c1'.
Реализация:
def encode_counts(text):
counts = {}
for char in text:
counts[char] = counts.get(char, 0) + 1
return ''.join(f'{char}{count}' for char, count in counts.items())
Это подсчёт всех вхождений, не кодирование последовательных серий: 'abac' даст 'a2b1c1'. Регистр, пробелы и пунктуация учитываются как обычные символы. Формат без разделителей неоднозначен для обратного декодирования, если исходный текст содержит цифры, но задача восстановления исходной строки здесь не ставится.