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

如何用Python生成整数元组的所有可能括号化形式?

问题描述

给定一个包含整数的可迭代容器,生成所有可能的整数括号化形式组成的元组。两个数字之间的分隔符只能选择, 或)(。

输入示例

# INPUT 
(1, 2, 3)

输出示例

# OUTPUT 
result = (
    "(1, 2, 3)",
    "(1, 2)(3)",
    "(1)(2, 3)",
    "(1)(2)(3)"
)

实现思路

每个元素间的分隔位置有两种选择:用, 保持同括号,或用)(拆分括号。可以用二进制数表示这些选择:二进制位为1时选, ,为0时选)(,遍历所有2^(元素数-1)种组合即可生成全部结果。

最简Python实现代码

def generate_parenthesized_forms(iterable):
    elems = list(map(str, iterable))
    n = len(elems)
    if n == 0:
        return ()
    res = []
    # 遍历所有分隔组合(共2^(n-1)种)
    for i in range(2 ** (n-1)):
        # 生成n-1位二进制字符串,补前导0对齐长度
        bits = bin(i)[2:].zfill(n-1)
        # 拼接括号化字符串
        s = '(' + elems[0]
        for bit, elem in zip(bits, elems[1:]):
            s += ', ' if bit == '1' else ')('
            s += elem
        s += ')'
        res.append(s)
    return tuple(res)

# 测试示例
input_data = (1, 2, 3)
result = generate_parenthesized_forms(input_data)
# 按示例格式输出结果
print("result = (")
for item in result:
    print(f"    {repr(item)},")
print(")")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:15:44