Dado un número binario A como entrada con d> 1 dígitos, genera un número binario B con d dígitos de acuerdo con las siguientes reglas para encontrar el enésimo dígito de B:
El primer dígito de B es cero si el primer y el segundo dígitos de A son iguales; de lo contrario, es uno.
Si 1 <n <d, entonces si los dígitos (n-1) th, nth y (n + 1) th de A son iguales, entonces el enésimo dígito de B es cero; de lo contrario, es uno.
El dth dígito de B es cero si los dígitos (d-1) th y dth de A son iguales; de lo contrario, es uno.
Reglas
El formato de entrada / salida de cadena / lista está bien. Otra forma permitida de entrada / salida es un número entero seguido por el número de ceros anteriores (o después del número de ceros anteriores).
Haz tu código lo más corto posible.
Casos de prueba
00 -> 00
01 -> 11
11 -> 00
010111100111 -> 111100111100
1000 -> 1100
11111111 -> 00000000
01010101 -> 11111111
1100 -> 0110
1100 -> 0110
(los primeros 2 dígitos de la salida son siempre idénticos en todos los demás casos de prueba; lo mismo para los últimos 2 dígitos)