用 Python 编写程序,求出给定字符串数字的所有子字符串的总和
pythonserver side programmingprogramming更新于 2025/12/12 23:08:17
假设我们有一个字符串格式的数字,我们需要求出 s 所有子字符串的总和。答案可能非常大,因此返回结果模 10^9+7。
因此,如果输入为 s = "268",则输出将为 378,因为子字符串为 "2"、"6"、"8"、"26"、"68" 和 "268"总和为 378。
为了解决这个问题,我们将遵循以下步骤 −
- M := 10^9 + 7
- sum_val := 0
- B := 1
- res := 0
- 对于 i,在 s - 1 到 0 的范围内,减少 1,执行
- res :=(res + s[i] 的位数 * B *(i + 1)) mod M
- sum_val := sum_val - s[i] 的位数
- B := (B * 10 + 1) mod M
- 返回 res
示例
让我们看看下面的实现以便更好地理解 −
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 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

