Divide la cadena en una secuencia de tipo Fibonacci

La función recibe una cadena de dígitos. Crea una lista de números a partir de esos dígitos de modo que:

  • La longitud de la lista sea de al menos tres.
  • Todos los números concatenados formen la cadena original. (Por lo tanto, solo se puede dividir la cadena, sin hacer permutaciones).
  • A partir del tercer número, cada número debe ser igual a la suma de los dos números anteriores, es decir, lst[i - 2] + lst[i - 1] == lst[i]
  • Un número no puede tener ceros iniciales, a menos que el número sea cero. (0 - permitido, 01 - no permitido)
  • Cada número de la lista debe ser menor que 2^31 (para que este desafío sea compatible con lenguajes de tipado fuerte).

Encuentra la lista de números que cumpla las propiedades anteriores y devuélvela. Si no se puede encontrar una secuencia similar a Fibonacci, devuelve una lista vacía [].

Ejemplos

split_fibonacci("11235813") ➞ [1, 1, 2, 3, 5, 8, 13]

split_fibonacci("112358130") ➞ []

split_fibonacci("123456579") ➞ [123, 456, 579]

split_fibonacci("0000") ➞ [0, 0, 0, 0]

Notas

Es posible que haya varias soluciones para algunas pruebas. Por eso, en la ventana Tests hay una función auxiliar que comprueba que la lista de salida cumpla los requisitos. Esto permite cierta libertad a la hora de encontrar una secuencia.