Работа со строкой

Вадим 1234567654321

Новичок
Пользователь
Июн 16, 2020
2
0
1
Код должен выдавать символ(a, b или c) и количество одинаковых символов(a, b или c), стоящих рядом.
Пример:
Входные данные: aaaabbcaa
Входные данные: a4b2c1a2
Код, написанный мной:
s = str(input())
k = 0
z = 0
print(len(s))
for i in s:
if s[k] == 'a':
while s[k] == 'a':
k += 1
if k != len(s):
if s[k] != 'a':
print('a' + str(s[z:k].count('a')), end = ' ')
z = k
else:
print('a' + str(s[z:k].count('a')), end=' ')
z = k
elif s[k] == 'b':
while s[k] == 'b':
k += 1
if s[k] != 'b':
print('b' + str(s[z:k].count('b')), end = ' ')
z = k
elif s[k] == 'c':
while s[k] == 'c':
k += 1
if s[k] != 'c':
print('c' + str(s[z:k].count('c')), end = ' ')
z = k
Выдает ошибку, которая, как я сам понял, возникает при последнем значении k( если брать пример выше, то в конце берётся k = 9, а s[k] не существует).
Подскажите, пожалуйста, как обойти это.
 

Insomnia78

Пользователь
Пользователь
Май 3, 2020
20
9
3
Это делается через алгоритм, а не так, как сдедал это ты. Подсказка: можно использовать str.count() или Counter для этого
 

Форум IT Специалистов