introduction
Observons ce tableau: [3, 2, 4, 1, 1, 5, 1, 2]
.
Chaque élément affiche la longueur de la sous-chaîne qui doit être additionnée. Jetons un coup d'œil au premier élément du tableau ci-dessus:
[3, 2, 4, 1, 1, 5, 1, 2]
^
L'élément au premier index est 3 , donc nous prenons maintenant une sous-chaîne de longueur trois avec le même index que la position de départ:
[3, 2, 4]
En résumé, cela donne 9 , donc le premier élément de l'ensemble de sous - chaînes est 9
.
Nous faisons cela pour tous les éléments du tableau:
3 -> [3, 2, 4]
2 -> [2, 4]
4 -> [4, 1, 1, 5]
1 -> [1]
1 -> [1]
5 -> [5, 1, 2]
1 -> [1]
2 -> [2]
Vous pouvez voir que le nombre 5 est un peu un cas étrange. Ce nombre dépasse la longueur du tableau:
[3, 2, 4, 1, 1, 5, 1, 2]
^ ^ ^ ^ ^
Nous ignorerons tout ce qui dépasse le tableau, nous utilisons donc simplement [5, 1, 2]
.
La dernière étape consiste à tout résumer:
[3, 2, 4] -> 9
[2, 4] -> 6
[4, 1, 1, 5] -> 11
[1] -> 1
[1] -> 1
[5, 1, 2] -> 8
[1] -> 1
[2] -> 2
Et c'est le tableau qui doit être sorti:
[9, 6, 11, 1, 1, 8, 1, 2]
La tâche
Étant donné un tableau non vide avec des entiers positifs (non nuls), affichez l'ensemble de sous - chaînes . C'est du code-golf , donc la soumission avec le plus petit nombre d'octets gagne!
Cas de test
[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]