Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Хочу улучшить алгоритм сжатия строчки в python, добрые дяди помогите пожалуйста!

Wqwqw Wqefhgiff Мастер (1247), на голосовании 1 месяц назад
 def compress_string(string): 
last_char = ''
compressed_string_list = []
for char in string:
if char == last_char:
last_char_data = compressed_string_list[-1]
compressed_string_list.pop()
compressed_string_list.append([char,last_char_data[1]+1])
else:
compressed_string_list.append([char,1])

last_char = char

return compressed_string_list

print(compress_string("aasa"))
сделал простенький алгоритм для сжатия строк, я хочу сделать чтобы он не по символ проходил, а так сказать, по всей строчке
типо так:
 строчка = "abcabcabcs"
сжатая_строчка = [["abc",3],["s",1]]
Голосование за лучший ответ
rock star Профи (527) 2 месяца назад
def compress_string(string):
compressed_string_list = []
n = len(string)
i = 0

while i < n:
substring = ""
j = i
while j < n and string[i] == string[j]:
substring += string[j]
j += 1

count = j - i
if substring:
compressed_string_list.append([substring, count])

i = j

return compressed_string_list

print(compress_string("abcabcabcs"))
rock starПрофи (527) 2 месяца назад
пример - [['abc', 3], ['s', 1]]
ПапаВысший разум (144030) 2 месяца назад
И ты думаешь, что если в квадратичный алгоритм засунуть миллион символов, то ты дождёшься результата?
Wqwqw WqefhgiffМастер (1247) 2 месяца назад
можешь с пробелами вставить и
 в такую штуку специально для кода 
Похожие вопросы