仅含 1 的子串数

给你一个二进制字符串 s(仅由 ‘0’ 和 ‘1’ 组成的字符串)。
返回所有字符都为 1 的子字符串的数目。
由于答案可能很大,请你将它对 10^9 + 7 取模后返回。

  • 输入:s = “0110111”
  • 输出:9
  • 解释:共有 9 个子字符串仅由 ‘1’ 组成
    “1” -> 5 次
    “11” -> 3 次
    “111” -> 1 次
1
2
3
4
5
6
7
8
9
10
11
var numSub = function(s) {
const pieces = s.match(/1+/g);
let ans = 0;
if (pieces) {
pieces.forEach((s) => {
n = s.length;
return (ans += (n * (n + 1)) / 2);
});
}
return ans % (1e9 + 7);
};