В сервисе починки роботов очень важно соблюдать порядок. Главный механик любит, чтобы все роботы стояли друг за другом — сначала только сломанные (если они есть), а потом исправные (если они есть).
По ночам роботы всё время гуляют по ангару, и к утру порядок, установленный главным механиком, нарушается. Механик решил наказывать роботов, которые нарушают порядок, и удалять из очереди. Но роботы взбунтовались и требуют равноправия — если уж удалять из очереди, то равное количество исправных и сломанных роботов.
Сломанные роботы обозначаются буквой B (broken), исправные — буквой W (working).
Есть строка из букв B и W. Надо удалить наименьшее и равное количество сломанных и исправных роботов так, чтобы в очереди сначала стояли только сломанные, а потом только исправные. Может оказаться, что одних или других нет. Общее количество роботов в очереди не превышает 10 000.
Выведи количество удалённых роботов и очередь, которая получилась после удаления нарушивших правило роботов.
Если в очереди никого не осталось, выведи "НИКОГО НЕ ОСТАЛОСЬ"
fix_robot_queue("BBWWBWWWBBWWBWBWWWW")
fix_robot_queue("BBBBBB")
fix_robot_queue("WWWWW")
fix_robot_queue("BBBWWWWW")
fix_robot_queue("BBWWBWWBBWWBBWWW")
Ответы
Ответ дал:
0
def fix_robot_queue(queue):
removed = 0
while "WB" in queue:
queue = queue.replace("W","", 1) # удаляем первую втречную W
# удаляем первую втречную B с конца
t = queue[::-1] # так как не существует замены работающей с права на лево, то переворачиваем строку
t = t.replace("B","", 1) # удаляем первую втречную B
queue = t[::-1] # обратный переворот
removed += 2
print(removed)
print(queue if len(queue) > 0 else "НИКОГО НЕ ОСТАЛОСЬ")
# Пример работы
fix_robot_queue("BBWWBWWWBBWWBWBWWWW")
Вас заинтересует
2 месяца назад
2 месяца назад
3 месяца назад
3 месяца назад
1 год назад
1 год назад
7 лет назад
7 лет назад
removed = 0
while "WB" in queue:
queue = queue.replace("W","", 1) # удаляем первую втречную W
# удаляем первую втречную B с конца
t = queue[::-1] # так как не существует замены работающей с права на лево, то переворачиваем строку
t = t.replace("B","", 1) # удаляем первую втречную B
queue = t[::-1] # обратный переворот
removed += 2
print(removed)
print(queue if len(queue) > 0 else "НИКОГО НЕ ОСТАЛОСЬ")