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

Run-length encoding实现错误:未统计最后一组连续字符

修复游程编码中未统计最后一组字符的问题

你的代码核心逻辑没问题,但问题出在循环结束后没有处理最后一组连续字符——只有当遇到不同字符时,你才会把之前的计数和字符追加到编码结果里,而最后一组字符没有后续字符触发这个操作,所以被漏掉了。

修复方案

在函数的return语句之前,手动把最后一组的计数和对应的字符追加到编码字符串中。另外建议处理空字符串的边界情况,避免索引错误:

def run_length_encode(string):
    if not string:  # 处理空字符串输入
        return ""
    
    encoded = ""
    count = 1
    for i in range(1, len(string)):
        if string[i] == string[i - 1]:
            count += 1
        else:
            encoded += str(count) + string[i - 1]
            count = 1
    # 追加最后一组字符的统计结果
    encoded += str(count) + string[-1]
    return encoded


# Example usage:
original_string = "AAAABBBCCDAA"
encoded_string = run_length_encode(original_string)

print("Original string:", original_string)
print("Encoded string:", encoded_string)

验证结果

运行修改后的代码,输入"AAAABBBCCDAA"会输出预期的4A3B2C1D2A,最后一组的2A被正确统计进去了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:36:07