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

如何实现二进制序列中x占位符替换为0/1的全序列枚举

实现思路

先统计输入二进制串中x的总个数n,所有可能的完整序列总数固定为2n种,每一种组合对应一个n位二进制数。遍历0到2n-1的所有整数,将每个整数转为固定n位的二进制串,按顺序替换原串中的x即可,天然适配x数量可变的场景。

Python 实现代码
def generate_all_binary(origin_str):
    # 记录所有x在原串中的索引位置
    x_indexes = [idx for idx, char in enumerate(origin_str) if char == 'x']
    x_total = len(x_indexes)
    result = []
    # 遍历所有0/1组合可能
    for num in range(2 ** x_total):
        # 整数转成x_total位的二进制串,补前导0对齐长度
        replace_bits = bin(num)[2:].zfill(x_total)
        str_list = list(origin_str)
        # 逐位替换x
        for idx, bit in zip(x_indexes, replace_bits):
            str_list[idx] = bit
        result.append(''.join(str_list))
    return result

# 调用测试
input_str = "01010xx101xxx001"
output_list = generate_all_binary(input_str)
for binary in output_list:
    print(binary)
方案特性
  • 适配任意x数量:只要x的个数不会导致2^n的量级超出内存承受范围即可正常运行,x数量小于20时运行效率极高
  • 替换逻辑准确:严格按照原串中x出现的先后顺序替换对应0/1,不会出现顺序错乱
  • 输出格式统一:所有输出序列长度和原输入序列完全一致,无额外冗余字符

简单测试验证:输入为"x1x"时,输出结果为["010", "011", "110", "111"],符合预期要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:39:03