Как поставить отрицание в While?

На вход этой программы поступает строка, начинающаяся с символа «>», содержащая 20 цифр 1, 15 цифр 2, 40 цифр 3 и оканчивающаяся символом «<». Определите, в каком порядке должны располагаться цифры во входной строке, чтобы сумма цифр, получившаяся в результате выполнения программы, была максимально возможной. В ответе запишите эту максимально возможную сумму. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 4, то верным ответом было бы число 200.
Я решил просто проверить все значения, что возможно и написал такой код, но понятия не имею, как поставить отрицание в While.
x = "<" + "1" * 20 + "2" * 15 + "3" * 40 + ">"
while not("><") in x:
x = x.replace(">1","3>",1)
x = x.replace( ">2", "2>",1)
x = x.replace(">3","1>",1)
x = x.replace("3<", "<1",1)
x = x.replace("2<", "<3",1)
x = x.replace("1<","<2",1)
x = x.replace("<","")
x = x.replace(">","")
print(sum(map(int,x)))
С таким кодом происходит просто бесконечный цикл.
Ответы (1 шт):
По условию у вас первый и последний символы должны быть ">" и "<", у вас наоборот.
И если я все правильно понял, то вот решение:
x = ">" + "1" * 20 + "2" * 15 + "3" * 40 + "<"
while '><' not in x:
x = x.replace('>1', '3>', 1)
x = x.replace('>2', '2>', 1)
x = x.replace('>3', '1>', 1)
x = x.replace('3<', '<1', 1)
x = x.replace('2<', '<3', 1)
x = x.replace('1<', '<2', 1)
print(sum(map(int, x.replace('><', ''))))