Помогите написать алгоритм обработки строки обратный данному

По условию некой задачи дан алгоритм обработки строки, состоящей из цифр 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 шт):

Автор решения: passant

Мне кажется, что-бы понять, что задача не имеет однозначного решения, достаточно на вход вашего алгоритма подать три строки '9000', '700', и '80' и во всех случаях получить одинаковый результат. Ну, можно еще забавы ради попытаться однозначно расшифровать то, что получилось после пропускания через ваш алгоритм строки '80000900070080'.

→ Ссылка