Dada una cadena de caracteres +=-
donde hay al menos uno =
, inserte enteros positivos entre todos los símbolos y al principio y al final de modo que se satisfagan las ecuaciones matemáticas.
Por ejemplo, dada la entrada
+-=-=
necesita insertar enteros positivos de A a F como este
A+B-C=D-E=F
de modo que las ecuaciones estén todas satisfechas, es decir, A + B - C
y D - E
y F
sean todos el mismo número.
Hay muchas formas posibles de hacer esto, ya que, siempre que las ecuaciones funcionen, se puede usar cualquier conjunto de enteros positivos. Cada línea aquí es una posible salida válida para ingresar +-=-=
:
2+3-4=6-5=1
1+1-1=2-1=1
4+2-4=4-2=2
100+1-10=182-91=91
89+231-77=1024-781=243
Tenga en cuenta que no se requiere que el valor de las expresiones sea un número entero positivo como lo son los números insertados. Por ejemplo, dada la entrada, -=-
las salidas 1-10=8-17
(evals a -9) y 10-1=17-8
(evals a 9) son igualmente válidas. Por supuesto, para algunas entradas, como =
es imposible tener un negativo como expresión, ya que solo 5=5
se pueden insertar números positivos como .
Tenga en cuenta también que cero no es un entero positivo.
El código más corto en bytes gana.
Puede generar los números como una lista en lugar de insertarlos directamente en la cadena. Si saca la cadena, puede haber espacios que separan símbolos y números. Entonces, para entrada +-=-=
, salida
2, 3, 4, 6, 5, 1
o
2 + 3 - 4 = 6 - 5 = 1
es equivalente a la salida
2+3-4=6-5=1
Casos de prueba
Input | One Possible Output
= | 1=1
== | 2=2=2
+= | 1+3=4
=+ | 2=1+1
-= | 30-10=20
=- | 1=2-1
=-= | 3=7-4=3
=+= | 2=1+1=2
=== | 100=100=100=100
+=- | 3+2=7-2
-=+ | 7-2=3+2
+=+ | 3+3=3+3
-=- | 1-10=8-17
--= | 60-1-1=58
++= | 60+1+1=62
-+= | 60-9+1=52
+-= | 60+9-1=68
+-=-= | 2+3-4=6-5=1
--=-- | 2-1-1=2-1-1
==-== | 47=47=50-3=47=47
=++=+-=-+=--= | 3=1+1+1=3+1-1=1-1+3=5-1-1=3
+--++-=-+-+- | 35+10-16-29+20+107-1000=5-4+3-2+1-876
====== | 8=8=8=8=8=8=8