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

如何用Python实现游程长度(Run Length)解码器?

实现指定规则的解码器

先明确输入输出对应的编码逻辑:输入数组是成对的数值组合,每一组的第一个数是「重复次数」,第二个数是「需要重复的目标值」。解码器要做的就是把每一组的目标值按对应次数展开,拼接成最终数组。

实现思路

  • 初始化空数组存储最终结果
  • 按步长2遍历输入数组,每次处理一对(次数+目标值)
  • 取出当前组的次数和目标值,将目标值重复对应次数后追加到结果数组
  • 遍历完成后返回结果数组

代码示例(Python)

def decoder(input_arr):
    result = []
    # 按步长2遍历,确保每次取到一组次数和目标值
    for i in range(0, len(input_arr), 2):
        count = input_arr[i]
        value = input_arr[i+1]
        # 扩展结果数组,添加count次value
        result.extend([value] * count)
    return result

# 测试示例输入
test_input = [3, 15, 6, 4]
print(decoder(test_input))  # 输出: [15, 15, 15, 4, 4, 4, 4, 4, 4]

额外说明

如果输入数组长度为奇数(即最后只剩一个单独的数值),可以根据实际需求处理:比如忽略最后一个元素,或者抛出参数异常,只需在代码里添加对应的判断逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:35:22