介绍
让我们来观察此阵:[3, 2, 4, 1, 1, 5, 1, 2]
。
每个元素显示必须加总的子字符串的长度。让我们看一下上述数组的第一个元素:
[3, 2, 4, 1, 1, 5, 1, 2]
^
第一个索引处的元素是3,因此我们现在取一个长度为3的子字符串,其索引与起始位置相同:
[3, 2, 4]
求和时,结果为9,因此子字符串总和集合的第一个元素为9
。
我们对数组中的所有元素执行此操作:
3 -> [3, 2, 4]
2 -> [2, 4]
4 -> [4, 1, 1, 5]
1 -> [1]
1 -> [1]
5 -> [5, 1, 2]
1 -> [1]
2 -> [2]
您会看到数字5有点奇怪。该数字超出了数组的长度:
[3, 2, 4, 1, 1, 5, 1, 2]
^ ^ ^ ^ ^
我们将忽略超出数组的所有内容,因此仅使用[5, 1, 2]
。
最后一步是总结一切:
[3, 2, 4] -> 9
[2, 4] -> 6
[4, 1, 1, 5] -> 11
[1] -> 1
[1] -> 1
[5, 1, 2] -> 8
[1] -> 1
[2] -> 2
这就是需要输出的数组:
[9, 6, 11, 1, 1, 8, 1, 2]
任务
给定一个带有正(非零)整数的非空数组,输出子字符串sum set。这是代码高尔夫球,因此字节数最少的提交将获胜!
测试用例
[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]