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

Python提取大小写敏感的最长递减子串丢失末尾子串如何修复

问题修复方案

问题根因

代码遍历完整个字符串后,没有将最后一段正在累加的非递增子串追加到结果列表中,因此所有输入的末尾子串都会丢失。

最小改动修复版本

只需要在循环结束后新增一行将剩余子串加入列表的逻辑即可:

s1 = 'bbaasssrppoccbaaacbaba'
# s1 = 'hjgAvjhjKLhbfvbZSF'

decSub = ''
listSub = []
i= 0

while i < len(s1):
    current = s1[i]
    previous = s1[i] if i == 0 else s1[i-1]
    if ord(current) <= ord(previous):
        decSub += current
    else:
        listSub.append(decSub)
        decSub = ''
        decSub += current
    i +=1
# 新增:将最后一段累加的子串加入列表
listSub.append(decSub)
print(listSub)

更简洁的实现版本

可以用for循环简化遍历逻辑,直接通过字符ASCII码比较天然支持大小写敏感判断,效果完全符合要求:

def get_max_non_increasing_substrings(s):
    if not s:
        return []
    res = []
    current_sub = s[0]
    for c in s[1:]:
        if ord(c) <= ord(current_sub[-1]):
            current_sub += c
        else:
            res.append(current_sub)
            current_sub = c
    res.append(current_sub)
    return res

# 测试验证
print(get_max_non_increasing_substrings('bbaasssrppoccbaaacbaba'))
# 输出:['bbaa', 'sssrppoccbaaa', 'cba', 'ba']
print(get_max_non_increasing_substrings('hjgAvjhjKLhbfvbZSF'))
# 输出:['h', 'jgA', 'vjh', 'jK', 'L', 'hb', 'f', 'vbZSF']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:15:03