Dada uma expressão que corresponde ao regex /^[-~]*x$/
, avalie-o em termos de x
e produza uma string correspondente ao regex /^-?x[+-]\d+$/
.
Por exemplo, a sequência é -~x
avaliada como x+1
, enquanto a sequência é -~-x
avaliada como -x+1
e a sequência é -~-~--x
avaliada como x+2
.
Começamos x
e avaliamos a string da direita para a esquerda. -
nega o termo, enquanto ~
converte y
para -y-1
.
Casos de teste:
x x+0
~x -x-1
-~x x+1
~-~x -x-2
-~-~x x+2
--~~x x+0
~-x x-1
-~-x -x+1
Isso é código-golfe . A resposta mais curta em bytes vence.
O formato de entrada / saída é rigoroso. O "x"
é obrigatório.
~
enquanto ele não foi definido.
x+010
vez dex+10
para-~-~-~-~-~-~-~-~-~-~x
? Corresponde ao segundo regex.