Я пытался закодировать строку (ex: aabbbacc)
во что-то вроде a2b3a1c2
это код, который я пробовал:
string_value = "aabbbacc"
temp_string = ""
for i in range(0, len(string_value)):
if i != len(string_value) or i > len(string_value):
temp_count = 1
while string_value[i] == string_value[i+1]:
temp_count += 1
i += 1
temp_string += string_value[i] + str(temp_count)
print(temp_string)
проблема в том, что я добавил if
условие, чтобы не выходить за пределы возможного, я все еще получаю ошибку
Traceback (most recent call last):
File "C:run_length_encoding.py", line 6, in <module>
while string_value[i] == string_value[i+1]:
IndexError: string index out of range
Я также пытался
string_value = "aabbbacc"
temp_string = ""
for i in range(0, len(string_value)):
count = 1
while string_value[i] == string_value[i+1]:
count += 1
i += 1
if i == len(string_value):
break
temp_string += string_value[i]+ str(count)
print(temp_string)
сейчас, я знаю, что мог бы быть лучший способ решить эту проблему, но я пытаюсь понять, почему я получаю исключение вне пределов, хотя у меня есть условие if, чтобы предотвратить его, в какой части лога c я иду не так, пожалуйста, объясните ...