как в строке из набора цифр, заменить определенные, на те, которые я задам на python
Дана строка: 11211212222121
Алгоритм:
НАЧАЛО
ПОКА нашлось (111) ИЛИ нашлось (222)
ЕСЛИ нашлось (111)
ТО заменить (111 на 2)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (222)
ТО заменить (222 на 1)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
(написать на Python)необходимо пройтись по этой строке и если в ней найдены 3 цифры 1 их нужно заменить на цифру 2 и если найдены 3 цифры 2 необходимо их заменить на цифру 1
Должно получиться:
12
Ответы (2 шт):
Автор решения: Edward Grachev
→ Ссылка
Давай с того что 12 у тебя никак не получится в дано: 11211212222121. Попробуй сам свой алгоритм прогнать в голове.
Если брать дано: 11211212222121 то получится 112112121121
Если убрать из дано одну 2: 1121121222121 11211211121 112112221 1121111 11212
Сам код:
a = 1121121222121
def repl(a):
if '111' in str(a):
a = str(a).replace('111','2')
repl(a)
elif '222' in str(a):
a = str(a).replace('222', '1')
repl(a)
else:
print(a)
repl(a)
Вы уверены что должно получиться 12?
Автор решения: Zhihar
→ Ссылка
из комментариев @Андрей Александрович, примерно понял что именно требовалось :)
в этом случае код может выглядеть так:
text = '11211212222121'
old_text = ''
while old_text != text:
old_text = text
# подсчитать кол-во единиц и двоек
count1 = text.count('1')
count2 = text.count('2')
# произвести замену
text = '2' * (count1 // 3) + '1' * (count2 // 3) + '1' * (count1 % 3) + '2' * (count2 % 3)
print(text)