Сделал 18 задание
This commit is contained in:
parent
3d46086283
commit
c23fc31ce4
60
lesson.18.py
Normal file
60
lesson.18.py
Normal 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)
|
||||
Loading…
Reference in a new issue