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

Python实现:统计指定长度递增子序列的数量

解决方法

你已经完成了序列分割的核心逻辑,接下来只需要实现递增子序列的判断逻辑,并整合到函数中完成统计即可。

关键思路:判断子序列是否递增

因为输入的序列是数字字符串,需要先将字符转成整数再比较。判断逻辑很直接:验证子序列中每一个元素都严格大于前一个元素。可以用Python内置的all()函数快速实现——它会检查迭代器中的所有条件是否都为True,只要有一个不满足就返回False。

完整代码实现

def subsequences(sequence, length):
    # 生成所有指定长度的子序列
    splits = [sequence[i:i+length] for i in range(0, len(sequence), length)]
    count = 0
    for subseq in splits:
        # 跳过长度不足的子序列(若原序列长度无法被目标长度整除)
        if len(subseq) != length:
            continue
        # 检查子序列是否递增:每个元素都大于前一个
        is_increasing = all(int(subseq[i]) > int(subseq[i-1]) for i in range(1, length))
        if is_increasing:
            count += 1
    return count

代码说明

  1. 序列分割:保留你原有的列表推导式,生成所有按指定长度分割的子序列,存入splits列表。
  2. 过滤无效子序列:如果原序列长度无法被目标长度整除,最后一段子序列会不足长度,直接跳过不统计。
  3. 递增判断与计数:遍历每个有效子序列,用all()结合生成器表达式完成递增验证,符合条件则计数器加1。

测试验证

print(subsequences('1234', 2))  # 输出:2
print(subsequences('12135267', 2))  # 输出:3
print(subsequences('322123453678', 3))  # 输出:2

运行结果完全匹配你给出的示例要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:50:19