在 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

以上是 在 Python 中查找作为字符串给出的数字的所有子字符串的总和的程序 的全部内容, 来源链接: utcz.com/z/343743.html

回到顶部