Кодировка длины выполнения в python3
Учитывая строку, выведите кодированный вывод длины выполнения.
Размер входного сигнала : N <= 100000
Образец Теста :
ВХОД
информацию AaAb
ВЫХОД
а3в1
код, который я попробовал выполнить для приведенного выше примера случая, но моя проблема в том, что частные случаи не прошли
Извините если это наивное сомнение я новичок в программировании
Заранее спасибо
Что я уже пробовал:
from collections import Counter text=input() if(text==None): print(" ") if(text.isalpha()): dict1=dict(Counter(text)) for i,j in dict1.items(): print(i,j,end="",sep="")
Richard MacCutchan
Мы не можем догадаться, какие тесты провалились или как они провалились.
_gvsss
да, я знаю эту часть, мое намерение состояло в том, что я ничего не упускаю, если таковые имеются, пожалуйста, дайте мне знать
Richard MacCutchan
Да, вы не объяснили, в чем проблема.
k5054
Что происходит, когда вы пытаетесь ввести "aaabbaa"? Выход должен быть a3b2a2
_gvsss
нет согласно моему кодексу так и будет
аааббаа
а5в2
Richard MacCutchan
Да, и это правильно, потому что вы используете класс Counter, который подсчитывает общее количество вхождений каждого уникального элемента. Если вы хотите RLE, то вам нужно написать код для расчета каждой части отдельно.
k5054
Поскольку это "кодировка длины выполнения", можно было бы ожидать, что вы сможете каким-то образом "декодировать" вывод и получить исходный текст обратно. То, что у вас есть, дает один и тот же результат для любой комбинации из 5 А и 2 Б, если первый символ-это а. Это означает, что вы потеряли информацию при "кодировании", а это, вероятно, не то, что вы хотите.
Patrice T
Но правильный ответ-a3b2a2