Dada uma expressão que corresponde ao regex /^[-~]*x$/, avalie-o em termos de xe produza uma string correspondente ao regex /^-?x[+-]\d+$/.
Por exemplo, a sequência é -~xavaliada como x+1, enquanto a sequência é -~-xavaliada como -x+1e a sequência é -~-~--xavaliada como x+2.
Começamos xe avaliamos a string da direita para a esquerda. -nega o termo, enquanto ~converte ypara -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+010vez dex+10para-~-~-~-~-~-~-~-~-~-~x? Corresponde ao segundo regex.