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

给定m≥n的两个整数,如何实现生成器返回所有滑动窗口?

字符串滑动比较生成索引元组的逻辑

我来给你拆解清楚这个滑动比较的逻辑,核心就是通过滑动较短的字符串(长度相同时滑动任意一个),依次配对两个字符串中对应比较位置的索引,最终按顺序输出所有元组。下面用两个具体例子详细说明:

例子1:长度不等的情况(m=3,n=2,s1=abc,s2=de)

这里s2是较短的字符串,我们通过左滑s2来完成所有比较配对:

  • 初始状态:s1的头部对齐s2的尾部,比较s1[0]和s2[1],生成元组 (0,1)
  • 第一次左滑s2:此时s1[0]对齐s2[0]、s1[1]对齐s2[1],依次生成 (0,0)、(1,1)
  • 第二次左滑s2:此时s1[1]对齐s2[0]、s1[2]对齐s2[1],依次生成 (1,0)、(2,1)
  • 第三次左滑s2:此时s1[2]对齐s2[0],生成 (2,0)

最终按顺序输出的元组列表为:(0,1)、(0,0)、(1,1)、(1,0)、(2,1)、(2,0)

例子2:长度相等的情况(m=2,n=2)

当两个字符串长度相同时,同样遵循滑动逻辑(滑动任意一个字符串均可),最终生成的元组顺序为:(0,1)、(0,0)、(1,1)、(1,0)

总结规律

整个过程是从两个字符串尾部对齐的状态开始,逐步将短字符串向左滑动,每次滑动后,把所有重叠位置的字符索引配对成元组并按顺序收集,直到短字符串的头部对齐长字符串的头部(长度不等时)或完成所有可能的滑动配对(长度相等时)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:07:53