You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将字符串拆分为3个子串并获取所有拆分组合?

字符串拆分为3个非空子串的实现方案

待处理的字符串如下:

st = 'abcdfdedf'

需求为将该字符串拆分为3个非空子串,获取所有可能的拆分组合。

实现思路

要拆分出3个非空子串,本质是在字符串的字符间隙中选取2个不同的拆分位置:

  • 设字符串长度为n,字符间隙共有n-1个(对应位置1到n-1,即拆分后前半段的结束索引)
  • 第一个拆分点i的取值范围为1 ≤ i ≤ n-2,需要预留至少2个字符给后面2个子串
  • 第二个拆分点j的取值范围为i+1 ≤ j ≤ n-1,需要预留至少1个字符给最后一个子串
  • 每一组(i,j)对应的拆分结果为[st[:i], st[i:j], st[j:]],刚好符合要求的输出格式

代码实现

st = 'abcdfdedf'
n = len(st)
result = []
# 遍历第一个拆分点
for i in range(1, n - 1):
    # 遍历第二个拆分点
    for j in range(i + 1, n):
        result.append([st[:i], st[i:j], st[j:]])
# 打印结果验证
print(result)

逻辑验证

以长度为9的abcdfdedf为例,总共有28种合法拆分组合,和代码运行输出的结果长度完全匹配,其中也包含示例给出的['abc','dfd','edf']、['abcd','f','dedf']等拆分结果,符合需求。

内容的提问来源于stack exchange,提问作者Yousuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:24:03