【发布时间】:2021-04-22 16:17:11
【问题描述】:
我正在尝试计算在 Python 中可以将给定字符串分成三部分的方法数。
例子:"bbbbb"可以分为三部分6种方式:
b|b|bbbb|bb|bbb|bbb|bbb|b|bbbb|bb|bbbb|b|b
我的第一条思路是N choose K,其中N = 字符串的长度,K = 拆分方式的数量 (3),但这仅适用于 3 和 4。
我的下一个想法是遍历字符串并计算前三分之一可以分割的点数和第二个三分之一可以分割的点数,然后将这两个计数相乘,但我无法实现,我什至不确定它是否会起作用。
如何计算将字符串拆分为N 部分的方法?
【问题讨论】:
-
空字符串也是子字符串,是否允许任何“部分”为空字符串? (这个问题是一个实际的问题,例如,考虑
'a '.split(' ')返回什么)。 -
答案是
import math; math.comb(N - 1, K - 1),使用Python标准库中的函数math.comb,其中N是字符串的长度,K是个数。每一段都必须是一个非空字符串。
标签: python string combinations