代码

68 阅读1分钟

def solution(numbers): # 将输入的数字字符串转换为整数列表 num_groups = [list(map(int, str(num))) for num in numbers]

# 生成所有可能的组合
combinations = []
generate_combinations(num_groups, 0, [], combinations)

# 统计满足条件的组合数量
count = 0
for combination in combinations:
    if is_sum_even(combination):
        count += 1

return count

递归生成所有可能的组合

def generate_combinations(num_groups, index, current, combinations): if index == len(num_groups): combinations.append(current[:]) return

# 从当前组的每个数字中取一个
for num in num_groups[index]:
    current.append(num)
    generate_combinations(num_groups, index + 1, current, combinations)
    current.pop()

判断组合的数字和是否为偶数

def is_sum_even(combination): return sum(combination) % 2 == 0

if name == "main": # 测试用例 print(solution([123, 456, 789]) == 14) print(solution([123456789]) == 4) print(solution([14329, 7568]) == 10)