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

Run-Length编码优化:计数为1时不显示数值

游程编码优化需求

现有一段实现游程编码的Python代码,当前逻辑会给每个字符都追加出现次数,包括仅出现1次的字符,需要优化这一行为。

原代码

def encode(message):
    encoded_message = ""
    i = 0
 
    while (i <= len(message)-1):
        count = 1
        ch = message[i]
        j = i
        while (j < len(message)-1):
            if (message[j] == message[j+1]):
                count = count+1
                j = j+1
            else:
                break
        encoded_message=encoded_message+str(count)+ch
        i = j+1
    return encoded_message
 
# 测试示例
encoded_message=encode("ABBBBCCCCCCCCAB")
print(encoded_message)

当前输出与期望输出

  • 当前运行输出:1A4B8C1A1B
  • 优化需求:当字符仅出现1次时,不显示计数数字,仅保留字符本身,期望输出:A4B8CAB

修改后的代码

只需在拼接编码结果时增加判断:若计数为1则只追加字符,否则追加计数和字符。

def encode(message):
    encoded_message = ""
    i = 0
 
    while (i <= len(message)-1):
        count = 1
        ch = message[i]
        j = i
        while (j < len(message)-1):
            if (message[j] == message[j+1]):
                count = count+1
                j = j+1
            else:
                break
        # 根据计数决定拼接内容
        if count == 1:
            encoded_message += ch
        else:
            encoded_message += str(count) + ch
        i = j+1
    return encoded_message
 
# 测试示例
encoded_message=encode("ABBBBCCCCCCCCAB")
print(encoded_message)

运行结果

修改后运行代码,输出为:A4B8CAB,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:10:29