Introducción
Observemos esta matriz: [3, 2, 4, 1, 1, 5, 1, 2]
.
Cada elemento muestra la longitud de la subcadena que debe resumirse. Echemos un vistazo al primer elemento de la matriz anterior:
[3, 2, 4, 1, 1, 5, 1, 2]
^
El elemento en el primer índice es 3 , por lo que ahora tomamos una subcadena de longitud tres con el mismo índice que la posición inicial:
[3, 2, 4]
Cuando resumió, esto se traduce en 9 , por lo que el primer elemento del conjunto suma subcadena es 9
.
Hacemos esto para todos los elementos de la matriz:
3 -> [3, 2, 4]
2 -> [2, 4]
4 -> [4, 1, 1, 5]
1 -> [1]
1 -> [1]
5 -> [5, 1, 2]
1 -> [1]
2 -> [2]
Puedes ver que el número 5 es un caso un poco extraño. Ese número excede la longitud de la matriz:
[3, 2, 4, 1, 1, 5, 1, 2]
^ ^ ^ ^ ^
Ignoraremos todo lo que exceda la matriz, por lo que solo usaremos [5, 1, 2]
.
El último paso es resumir todo:
[3, 2, 4] -> 9
[2, 4] -> 6
[4, 1, 1, 5] -> 11
[1] -> 1
[1] -> 1
[5, 1, 2] -> 8
[1] -> 1
[2] -> 2
Y esa es la matriz que se debe generar:
[9, 6, 11, 1, 1, 8, 1, 2]
La tarea
Dada una matriz no vacía con enteros positivos (no cero), genera el conjunto de suma de subcadenas . Este es el código de golf , por lo que gana el envío con el menor número de bytes.
Casos de prueba
[1, 2, 3, 4, 5] -> [1, 5, 12, 9, 5]
[3, 3, 3, 3, 3, 3, 3, 3] -> [9, 9, 9, 9, 9, 9, 6, 3]
[5, 1, 2, 4, 1] -> [13, 1, 6, 5, 1]
[1] -> [1]