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

解码器生成字符串按2、1字节交替规则拆分不等分组最佳实践

十六进制字符串按2字节/1字节交替拆分最佳实现

规则前置说明

业务场景下十六进制字符串的1字节固定对应2个字符,因此题目要求的「2字节、1字节交替拆分」,实际对应切分步长为4个字符、2个字符循环交替,不需要提前硬编码每个分组的位置,通用逻辑可适配所有符合该规则的输入。
测试用例输入:s = '00EF0100F001001503'
预期输出:['00EF', '01', '00F0', '01', '0015', '03']

通用实现逻辑(以Python为例,其他语言可直接平移逻辑)

s = '00EF0100F001001503'
split_result = []
current_pos = 0
# 交替步长队列:2字节对应4字符,1字节对应2字符
steps = [4, 2]
step_pointer = 0

while current_pos < len(s):
    # 取当前轮次对应步长
    step = steps[step_pointer % 2]
    # 截取子串加入结果集
    split_result.append(s[current_pos:current_pos+step])
    # 移动字符串读取位置
    current_pos += step
    # 切换下一轮次步长
    step_pointer += 1

执行后split_result的返回值和预期输出完全一致。

方案优势

  • 无硬编码:不需要提前计算每个分组的偏移位置,支持任意长度的同规则字符串拆分
  • 易维护:如果后续需要调整拆分规则(比如改成1字节/2字节交替、3字节/1字节交替),仅需修改steps数组内的步长值即可,不需要重构整体逻辑
  • 兼容性强:如果输入字符串末尾存在不足步长的残段,代码会自动截取剩余内容,不会触发索引越界错误;如果业务要求格式严格合法,可在拆分后增加校验逻辑,检查每个分组的长度是否符合步长预期,异常时抛出格式错误即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 23:18:20