Помогите написать алгоритм обработки строки обратный данному
По условию некой задачи дан алгоритм обработки строки, состоящей из цифр 7890, который приведен ниже.
while s.count('900') or s.count('8000') or s.count('70'):
s = s.replace('70', '8', 1)
s = s.replace('900', '70', 1)
s = s.replace('8000', '900', 1)
Для строки "7008900700800" результатом будет "808880800". Но мне нужен алгоритм, который вернет обработанную строчку в изначальное состояние. Я попробовал его сделать, поменял местами аргументы в replace, 1ую строку под while поменял с 3ьей и заменил условие, и вроде бы все логично, но где то ошибка.
while s.count('8') or s.count('70') or s.count('900'):
s = s.replace('900', '8000', 1)
s = s.replace('70', '900', 1)
s = s.replace('8', '70', 1)
Помогите составить алгоритм который будет работать, я уже все кажется перепробовал.
Ответы (1 шт):
Мне кажется, что-бы понять, что задача не имеет однозначного решения, достаточно на вход вашего алгоритма подать три строки '9000', '700', и '80' и во всех случаях получить одинаковый результат. Ну, можно еще забавы ради попытаться однозначно расшифровать то, что получилось после пропускания через ваш алгоритм строки '80000900070080'.