在 Python 中查找作为字符串给出的数字的所有子字符串的总和的程序
假设我们有一个字符串格式的数字,我们必须找到s的所有子字符串的总和。答案可能很大,所以返回结果模10^9+7。
因此,如果输入类似于s="268",那么输出将为378,因为子字符串为"2"、"6"、"8"、"26"、"68"和"268"总和为378.
示例
让我们看看以下实现以获得更好的理解-
def solve(s): M = 10 ** 9 + 7 sum_val = 0 B = 1 res = 0 for i in range(len(s) - 1, -1, -1): res = (res + int(s[i]) * B * (i + 1)) % M sum_val -= int(s[i]) B = (B * 10 + 1) % M return res s = "268" print(solve(s))
输入
"268"输出结果
378