Сделал 18 задание

This commit is contained in:
parent 3d46086283
commit c23fc31ce4

60
lesson.18.py Normal file
View file

@ -0,0 +1,60 @@
''' ****** Задание 18 из 20 *********
* RLE (Run-Length Encoding) — это способ сокращённой записи повторяющихся символов.
Вместо длинной группы одинаковых символов записывается сам символ и число его повторений.
Например, 99999 превращается в 9 5 («девять пять раз»).
Напишите программу, которая получает строку из цифр и выводит её RLE-представление: последовательность пар «цифра — количество подряд идущих повторений».
Формат ввода
Строка цифр длиной не меньше 1.
Формат вывода
Пары: сама цифра и количество повторений цифры подряд во введённой строке, как описано в условии и показано в примере.
Подсказка
Считайте данные (например в переменную text):
Преобразуйте данные:
reference = text[0] # в качестве опорной цифры возьмите первую
counter = 1 # мы точно знаем, что одна такая цифра есть =)
text = text[1:] + '_' # удалите первую цифру и добавьте "отличительный" признак конца строки
Организуйте цикл по text (например используя переменную digit)
Постройте алгоритм следующим образом:
если цифра равна опорной - увеличиваем количество;
если это новая цифра - выведите опорную и количество раз что вы ее наблюдали, обновите опорную цифру и счётчик.
В конце цикла вы увидите знак _, который точно не будет равен последней опорной цифре.
Пример 1
Ввод
010000100001111111110111110000000000000011111111
Вывод
0 1
1 1
0 4
1 1
0 4
1 9
0 1
1 5
0 14
1 8
'''
if __name__ == "__main__":
line = input()
temp_line, repeat = line[0], 1
for i in line[1:]:
if i == temp_line:
repeat += 1
else:
print(temp_line, repeat)
temp_line, repeat = i, 1
print(temp_line, repeat)