Я решаю задачки на сайте DMOJ и одна задача поставила меня в небольшой тупик.
Главная трудность заключалась в написании небольшой функции, которая принимала строку без пробелов, а возвращала бы строку, где каждая непрерывная последовательность одинаковых символов была бы представлена в следующем виде:
3 p
, где цифра 3 обозначает сколько символов p было в последовательности. Сейчас будет понятней:Строка входа
input = 'pppqqq++++'
Строка выхода
output = '3 p 3 q 4 +'
В итоге как с помощью python из строки input получить строку output?
def compress_string(string):
compressed = []
count = 1
for i in range(1, len(string)):
if string[i] == string[i - 1]:
count += 1
else:
compressed.append(f"{count}({string[i - 1]})")
count = 1
compressed.append(f"{count}({string[-1]})")
return " ".join(compressed)
print(compress_string('pppqqq++++'))
Good coding
#problem #string #algorithm
Please open Telegram to view this post
VIEW IN TELEGRAM