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

如何将两个不同长度列表中对应字符串的子串重组为嵌套列表?

解决方案

核心思路是按原列表a的字符串顺序,逐个匹配列表b中的连续子串,直到拼接后的结果等于a中的当前字符串,具体实现步骤如下:

  1. 用一个指针跟踪列表b的当前遍历位置
  2. 遍历列表a中的每个目标字符串,不断从b中取子串拼接,直到拼接结果与目标字符串一致,此时收集的子串就是对应分组
  3. 将每组子串作为子列表存入结果c

代码实现

a = ["today", "I", "want", "to", "eat", "some", "cake."]
b = ["to", "da", "y", "I", "wa", "nt", "to", "ea", "t", "some", "ca", "ke", "."]

c = []
b_idx = 0  # 跟踪b的当前位置

for target in a:
    current_chunks = []
    current_str = ""
    while current_str != target:
        chunk = b[b_idx]
        current_chunks.append(chunk)
        current_str += chunk
        b_idx += 1
    c.append(current_chunks)

print(c)
# 输出: [["to", "da", "y"], ["I"], ["wa", "nt"], ["to"], ["ea", "t"], ["some"], ["ca", "ke", "."]]

说明

  • 该方法完全依赖题目给出的前提:b中对应a字符串的子串彼此相邻、顺序一致,无需处理子串乱序或间隔无关内容的情况
  • 指针b_idx确保不会重复遍历b中的元素,整个过程时间复杂度为O(n)(n为b的长度),效率较高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:20:29