Introdução
Vamos observar esta matriz: [3, 2, 4, 1, 1, 5, 1, 2]
.
Cada elemento exibe o comprimento da substring que deve ser resumida. Vamos dar uma olhada no primeiro elemento da matriz acima:
[3, 2, 4, 1, 1, 5, 1, 2]
^
O elemento no primeiro índice é 3 , portanto, agora usamos uma substring de comprimento três com o mesmo índice que a posição inicial:
[3, 2, 4]
Quando resumido, isso resulta em 9 ; portanto, o primeiro elemento do conjunto de somas de substring é 9
.
Fazemos isso para todos os elementos da 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]
Você pode ver que o número 5 é um caso estranho. Esse número excede o comprimento da matriz:
[3, 2, 4, 1, 1, 5, 1, 2]
^ ^ ^ ^ ^
Ignoraremos tudo o que exceder a matriz, portanto, apenas usamos [5, 1, 2]
.
O último passo é resumir tudo:
[3, 2, 4] -> 9
[2, 4] -> 6
[4, 1, 1, 5] -> 11
[1] -> 1
[1] -> 1
[5, 1, 2] -> 8
[1] -> 1
[2] -> 2
E essa é a matriz que precisa ser gerada:
[9, 6, 11, 1, 1, 8, 1, 2]
A tarefa
Dada uma matriz não vazia com números inteiros positivos (diferentes de zero), produza o conjunto de soma de substring . Isso é código-golfe , então a submissão com o menor número de bytes vence!
Casos de teste
[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]